Skip to content

Commit

Permalink
🚑 Fix parse method to handle non-Nokogiri::XML::Element elements
Browse files Browse the repository at this point in the history
- Improved `UserParser.parse` to properly convert elements before processing.
  • Loading branch information
r74tech committed Oct 7, 2024
1 parent d71119a commit e3deda0
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 4 deletions.
7 changes: 6 additions & 1 deletion wikidotrb/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
## [released]

## [3.0.7.pre] - 2024-10-06

### Added
- Initial release of `wikidotrb`, a Ruby library inspired by `wikidot.py`.

## [3.0.7.pre.1] - 2024-10-08

### Changed
- Improved `UserParser.parse` method to convert non-`Nokogiri::XML::Element` elements properly before processing.
8 changes: 7 additions & 1 deletion wikidotrb/lib/wikidotrb/util/parser/user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,13 @@ class UserParser
# @param elem [Nokogiri::XML::Element] パース対象の要素(printuserクラスがついた要素)
# @return [AbstractUser] パースされて得られたユーザーオブジェクト
def self.parse(client, elem)
return nil if elem.nil? || !elem.is_a?(Nokogiri::XML::Element)
if elem.nil?
return nil
elsif !elem.is_a?(Nokogiri::XML::Element)
# 文字列であることを仮定し、Nokogiriで変換する
parsed_doc = Nokogiri::HTML.fragment(elem.to_s)
elem = parsed_doc.children.first
end

if elem["class"]&.include?("deleted")
# "deleted"クラスがある場合はDeletedUser
Expand Down
2 changes: 1 addition & 1 deletion wikidotrb/lib/wikidotrb/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true

module Wikidotrb
VERSION = "0.0.1-dev1"
VERSION = "3.0.7.pre.1"
end
2 changes: 1 addition & 1 deletion wikidotrb/wikidotrb.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ require_relative "lib/wikidotrb/version"

Gem::Specification.new do |spec|
spec.name = "wikidotrb"
spec.version = "3.0.7.pre"
spec.version = "3.0.7.pre.1"
spec.authors = ["r74tech"]
spec.email = ["[email protected]"]

Expand Down

0 comments on commit e3deda0

Please sign in to comment.