Method: JSON::Stream::Parser#initialize
- Defined in:
- lib/json/stream/parser.rb
#initialize(&block) ⇒ Parser
Create a new parser with an optional initialization block where we can register event callbacks.
Examples
parser = JSON::Stream::Parser.new do
start_document { puts "start document" }
end_document { puts "end document" }
start_object { puts "start object" }
end_object { puts "end object" }
start_array { puts "start array" }
end_array { puts "end array" }
key { |k| puts "key: #{k}" }
value { |v| puts "value: #{v}" }
end
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/json/stream/parser.rb', line 89 def initialize(&block) @state = :start_document @utf8 = Buffer.new @listeners = { start_document: [], end_document: [], start_object: [], end_object: [], start_array: [], end_array: [], key: [], value: [] } # Track parse stack. @stack = [] @unicode = "" @buf = "" @pos = -1 # Register any observers in the block. instance_eval(&block) if block_given? end |