class Sie::Document::Renderer
Constants
- ENCODING
Public Class Methods
new()
click to toggle source
# File lib/sie/document/renderer.rb, line 6 def initialize @io = StringIO.new @io.set_encoding(ENCODING) end
Public Instance Methods
add_array() { || ... }
click to toggle source
# File lib/sie/document/renderer.rb, line 15 def add_array append "{" yield append "}" end
add_line(label, *values)
click to toggle source
# File lib/sie/document/renderer.rb, line 11 def add_line(label, *values) append ["##{ label }", *format_values(values)].join(" ") end
render()
click to toggle source
# File lib/sie/document/renderer.rb, line 21 def render io.rewind io.read end
Private Instance Methods
append(text)
click to toggle source
# File lib/sie/document/renderer.rb, line 30 def append(text) io.puts(encoded(text)) end
encoded(text)
click to toggle source
# File lib/sie/document/renderer.rb, line 38 def encoded(text) text.encode(ENCODING, :invalid => :replace, :undef => :replace, :replace => "?") end
format_value(value)
click to toggle source
# File lib/sie/document/renderer.rb, line 42 def format_value(value) case value when Date value.strftime("%Y%m%d") when Array subvalues = value.map { |subvalue| format_value(subvalue.to_s) } "{#{subvalues.join(' ')}}" when Numeric value.to_s else '"' + value.to_s.gsub('"', '\"') + '"' end end
format_values(values)
click to toggle source
# File lib/sie/document/renderer.rb, line 34 def format_values(values) values.map { |value| format_value(value) } end