Class: JsonWriteStream::BaseWriter

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

Direct Known Subclasses

StatefulArrayWriter, StatefulObjectWriter

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(writer, indent_level) ⇒ BaseWriter

Returns a new instance of BaseWriter.



136
137
138
139
140
141
# File 'lib/json-write-stream/stateful.rb', line 136

def initialize(writer, indent_level)
  @writer = writer
  @indent_level = indent_level
  @index = 0
  after_initialize
end

Instance Attribute Details

#indent_levelObject (readonly)

Returns the value of attribute indent_level.



134
135
136
# File 'lib/json-write-stream/stateful.rb', line 134

def indent_level
  @indent_level
end

#indexObject (readonly)

Returns the value of attribute index.



134
135
136
# File 'lib/json-write-stream/stateful.rb', line 134

def index
  @index
end

#writerObject (readonly)

Returns the value of attribute writer.



134
135
136
# File 'lib/json-write-stream/stateful.rb', line 134

def writer
  @writer
end

Instance Method Details

#after_initializeObject



143
144
# File 'lib/json-write-stream/stateful.rb', line 143

def after_initialize
end

#escape(str) ⇒ Object



162
163
164
# File 'lib/json-write-stream/stateful.rb', line 162

def escape(str)
  JSON.generate([str])[1..-2]
end

#incrementObject



150
151
152
# File 'lib/json-write-stream/stateful.rb', line 150

def increment
  @index += 1
end

#indent(level = indent_level) ⇒ Object



154
155
156
# File 'lib/json-write-stream/stateful.rb', line 154

def indent(level = indent_level)
  stream.write(' ' * indent_size * level) if pretty?
end

#indent_sizeObject



158
159
160
# File 'lib/json-write-stream/stateful.rb', line 158

def indent_size
  writer.indent_size
end

#pretty?Boolean

Returns:

  • (Boolean)


182
183
184
# File 'lib/json-write-stream/stateful.rb', line 182

def pretty?
  writer.pretty?
end

#streamObject



146
147
148
# File 'lib/json-write-stream/stateful.rb', line 146

def stream
  writer.stream
end

#write_colonObject



173
174
175
176
# File 'lib/json-write-stream/stateful.rb', line 173

def write_colon
  stream.write(':')
  stream.write(' ') if pretty?
end

#write_commaObject



166
167
168
169
170
171
# File 'lib/json-write-stream/stateful.rb', line 166

def write_comma
  if index > 0
    stream.write(",")
    write_newline
  end
end

#write_newlineObject



178
179
180
# File 'lib/json-write-stream/stateful.rb', line 178

def write_newline
  stream.write("\n") if pretty?
end