Skip to content

Commit e3deda0

Browse files
committed
🚑 Fix parse method to handle non-Nokogiri::XML::Element elements
- Improved `UserParser.parse` to properly convert elements before processing.
1 parent d71119a commit e3deda0

File tree

4 files changed

+15
-4
lines changed

4 files changed

+15
-4
lines changed

wikidotrb/CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,14 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [Unreleased]
8+
## [released]
99

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

1212
### Added
1313
- Initial release of `wikidotrb`, a Ruby library inspired by `wikidot.py`.
14+
15+
## [3.0.7.pre.1] - 2024-10-08
16+
17+
### Changed
18+
- Improved `UserParser.parse` method to convert non-`Nokogiri::XML::Element` elements properly before processing.

wikidotrb/lib/wikidotrb/util/parser/user.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ class UserParser
1212
# @param elem [Nokogiri::XML::Element] パース対象の要素(printuserクラスがついた要素)
1313
# @return [AbstractUser] パースされて得られたユーザーオブジェクト
1414
def self.parse(client, elem)
15-
return nil if elem.nil? || !elem.is_a?(Nokogiri::XML::Element)
15+
if elem.nil?
16+
return nil
17+
elsif !elem.is_a?(Nokogiri::XML::Element)
18+
# 文字列であることを仮定し、Nokogiriで変換する
19+
parsed_doc = Nokogiri::HTML.fragment(elem.to_s)
20+
elem = parsed_doc.children.first
21+
end
1622

1723
if elem["class"]&.include?("deleted")
1824
# "deleted"クラスがある場合はDeletedUser

wikidotrb/lib/wikidotrb/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module Wikidotrb
4-
VERSION = "0.0.1-dev1"
4+
VERSION = "3.0.7.pre.1"
55
end

wikidotrb/wikidotrb.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ require_relative "lib/wikidotrb/version"
44

55
Gem::Specification.new do |spec|
66
spec.name = "wikidotrb"
7-
spec.version = "3.0.7.pre"
7+
spec.version = "3.0.7.pre.1"
88
spec.authors = ["r74tech"]
99
spec.email = ["[email protected]"]
1010

0 commit comments

Comments
 (0)