class Json::Streamer::Callbacks

Attributes

aggregator[R]

Public Class Methods

new(aggregator) click to toggle source
# File lib/json/streamer/callbacks.rb, line 6
def initialize(aggregator)
  @aggregator = aggregator
end

Public Instance Methods

end_array() { |obj| ... } click to toggle source
# File lib/json/streamer/callbacks.rb, line 31
def end_array
  end_level { |obj| yield obj }
end
end_object() { |obj| ... } click to toggle source
# File lib/json/streamer/callbacks.rb, line 27
def end_object
  end_level { |obj| yield obj }
end
key(k, symbolize_keys) click to toggle source
# File lib/json/streamer/callbacks.rb, line 18
def key(k, symbolize_keys)
  @aggregator.key = symbolize_keys ? k.to_sym : k
end
start_array() click to toggle source
# File lib/json/streamer/callbacks.rb, line 14
def start_array
  new_level(Array.new)
end
start_object() click to toggle source
# File lib/json/streamer/callbacks.rb, line 10
def start_object
  new_level(Hash.new)
end
value(value) { |value| ... } click to toggle source
# File lib/json/streamer/callbacks.rb, line 22
def value(value)
  used = yield value
  add_value(value) unless used
end

Private Instance Methods

add_value(value) click to toggle source
# File lib/json/streamer/callbacks.rb, line 46
def add_value(value)
  @aggregator.value = value
end
end_level() { |data| ... } click to toggle source
# File lib/json/streamer/callbacks.rb, line 37
def end_level
  data = @aggregator.value.clone

  @aggregator.pop

  used = yield data
  add_value(data) unless used or @aggregator.empty?
end
new_level(type) click to toggle source
# File lib/json/streamer/callbacks.rb, line 50
def new_level(type)
  @aggregator.push(value: type)
end