Class: Json::Streamer::Parser
- Inherits:
-
Object
- Object
- Json::Streamer::Parser
- Defined in:
- lib/json/streamer/parser.rb
Instance Method Summary collapse
- #<<(data) ⇒ Object
- #aggregator ⇒ Object
- #get(conditions) ⇒ Object
-
#initialize(event_generator, options = {}) ⇒ Parser
constructor
A new instance of Parser.
Constructor Details
#initialize(event_generator, options = {}) ⇒ Parser
Returns a new instance of Parser.
7 8 9 10 11 12 13 |
# File 'lib/json/streamer/parser.rb', line 7 def initialize(event_generator, = {}) @event_generator = event_generator @symbolize_keys = [:symbolize_keys] @aggregator = Aggregator.new @event_consumer = Callbacks.new(@aggregator) end |
Instance Method Details
#<<(data) ⇒ Object
42 43 44 |
# File 'lib/json/streamer/parser.rb', line 42 def <<(data) @event_generator << data end |
#aggregator ⇒ Object
46 47 48 |
# File 'lib/json/streamer/parser.rb', line 46 def aggregator @aggregator.get end |
#get(conditions) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/json/streamer/parser.rb', line 15 def get(conditions) @event_generator.start_object { @event_consumer.start_object } @event_generator.start_array { @event_consumer.start_array } @event_generator.key do |k| @event_consumer.key(k, @symbolize_keys) end @event_generator.value do |v| @event_consumer.value(v) do |value| yield value if conditions.yield_value.call(aggregator: @aggregator, value: value) end end @event_generator.end_object do @event_consumer.end_object do |object| yield object if conditions.yield_object.call(aggregator: @aggregator, object: object) end end @event_generator.end_array do @event_consumer.end_array do |array| yield array if conditions.yield_array.call(aggregator: @aggregator, array: array) end end end |