class Json::Streamer::Parser
Public Class Methods
new(event_generator, options = {})
click to toggle source
# File lib/json/streamer/parser.rb, line 7 def initialize(event_generator, options = {}) @event_generator = event_generator @symbolize_keys = options[:symbolize_keys] @aggregator = Aggregator.new @event_consumer = Callbacks.new(@aggregator) end
Public Instance Methods
<<(data)
click to toggle source
# File lib/json/streamer/parser.rb, line 42 def <<(data) @event_generator << data end
aggregator()
click to toggle source
# File lib/json/streamer/parser.rb, line 46 def aggregator @aggregator.get end
get(conditions) { |value| ... }
click to toggle source
# 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