Class: FiasParser::Document
- Inherits:
-
Object
- Object
- FiasParser::Document
- Defined in:
- lib/fias_parser.rb
Instance Method Summary collapse
- #attr(name, value) ⇒ Object
- #end_element(name) ⇒ Object
-
#initialize(options, block) ⇒ Document
constructor
A new instance of Document.
- #start_element(name) ⇒ Object
- #yield_batch ⇒ Object
Constructor Details
#initialize(options, block) ⇒ Document
Returns a new instance of Document.
8 9 10 11 12 13 14 15 |
# File 'lib/fias_parser.rb', line 8 def initialize( , block ) @block = block @batch = [] @batch_size = [:batch_size] || 10 @root_name = nil @item_name = nil end |
Instance Method Details
#attr(name, value) ⇒ Object
30 31 32 |
# File 'lib/fias_parser.rb', line 30 def attr( name, value ) @item[ name ] = value unless @item.nil? end |
#end_element(name) ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'lib/fias_parser.rb', line 34 def end_element( name ) self.yield_batch if name == @root_name && @batch.any? return if @item.nil? || name != @item_name @batch << @item self.yield_batch if @batch.size >= @batch_size end |
#start_element(name) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/fias_parser.rb', line 17 def start_element( name ) @item = nil if @root_name.nil? @root_name = name return end @item_name = name @item = {} end |
#yield_batch ⇒ Object
44 45 46 47 |
# File 'lib/fias_parser.rb', line 44 def yield_batch @block.call( @batch ) @batch = [] end |