Class: LazyJson::Array
Instance Method Summary collapse
-
#[](i) ⇒ Object
Access an element, lazily parsing if not yet parsed.
-
#initialize(seq) ⇒ Array
constructor
A new instance of Array.
Methods inherited from Value
Constructor Details
#initialize(seq) ⇒ Array
Returns a new instance of Array.
241 242 243 244 245 |
# File 'lib/lazy-json.rb', line 241 def initialize(seq) super(seq) @elements = [] @eseq = @seq.skip_whitespace.skip_byte(91) # '['.ord end |
Instance Method Details
#[](i) ⇒ Object
Access an element, lazily parsing if not yet parsed
248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 |
# File 'lib/lazy-json.rb', line 248 def [](i) if @elements.size <= i && ! @eseq.empty? while true @eseq = @eseq.skip_whitespace if @eseq.first == 93 # ']'.ord @eseq = @eseq.skip_byte(93).skip_whitespace # ']'.ord break end new_value = read_value_and_consume @elements << new_value break if @elements.size > i end end @elements[i] end |