Class: JsonWriteStream::StatefulObjectWriter

Inherits:
BaseWriter
  • Object
show all
Defined in:
lib/json-write-stream/stateful.rb

Instance Attribute Summary

Attributes inherited from BaseWriter

#indent_level, #index, #writer

Instance Method Summary collapse

Methods inherited from BaseWriter

#escape, #increment, #indent, #indent_size, #initialize, #pretty?, #stream, #write_colon, #write_comma, #write_newline

Constructor Details

This class inherits a constructor from JsonWriteStream::BaseWriter

Instance Method Details

#after_initializeObject



188
189
190
191
# File 'lib/json-write-stream/stateful.rb', line 188

def after_initialize
  stream.write("{")
  write_newline
end

#closeObject



220
221
222
223
224
# File 'lib/json-write-stream/stateful.rb', line 220

def close
  write_newline
  indent(indent_level - 1)
  stream.write("}")
end

#is_array?Boolean

Returns:

  • (Boolean)


230
231
232
# File 'lib/json-write-stream/stateful.rb', line 230

def is_array?
  false
end

#is_object?Boolean

Returns:

  • (Boolean)


226
227
228
# File 'lib/json-write-stream/stateful.rb', line 226

def is_object?
  true
end

#write_array(key) ⇒ Object

prep work (array is written afterwards)



194
195
196
197
198
199
200
# File 'lib/json-write-stream/stateful.rb', line 194

def write_array(key)
  write_comma
  increment
  indent
  write_key(key)
  write_colon
end

#write_key_value(key, value) ⇒ Object



211
212
213
214
215
216
217
218
# File 'lib/json-write-stream/stateful.rb', line 211

def write_key_value(key, value)
  write_comma
  increment
  indent
  write_key(key)
  write_colon
  stream.write(escape(value))
end

#write_object(key) ⇒ Object

prep work (object is written afterwards)



203
204
205
206
207
208
209
# File 'lib/json-write-stream/stateful.rb', line 203

def write_object(key)
  write_comma
  increment
  indent
  write_key(key)
  write_colon
end