Class: LibXMLEnumparse::Parser
- Inherits:
-
Object
- Object
- LibXMLEnumparse::Parser
- Defined in:
- lib/libxml_enumparse.rb
Defined Under Namespace
Classes: EnumCallbacks
Instance Method Summary collapse
-
#enumerator ⇒ Enumerator
指定された tag の XMLエレメントを順次処理する Enumerator オブジェクトを返します.
-
#initialize(file_path, tag) ⇒ Parser
constructor
コンストラクタ.
Constructor Details
#initialize(file_path, tag) ⇒ Parser
コンストラクタ
56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/libxml_enumparse.rb', line 56 def initialize(file_path, tag) raise ArgumentError, "file_path is not set." unless file_path.is_a?(String) raise ArgumentError, "tag is not set." unless tag.is_a?(String) @fiber = Fiber.new do parser = LibXML::XML::SaxParser.file(file_path) parser.callbacks = EnumCallbacks.new(tag) parser.parse Fiber.yield(nil) end end |
Instance Method Details
#enumerator ⇒ Enumerator
指定された tag の XMLエレメントを順次処理する Enumerator オブジェクトを返します
73 74 75 76 77 78 79 80 81 82 |
# File 'lib/libxml_enumparse.rb', line 73 def enumerator Enumerator.new do |y| loop do res = @fiber.resume break unless res y << res end end end |