Module: Baldr::Renderer::EdiLikeJson

Extended by:
EdiLikeJson
Included in:
EdiLikeJson
Defined in:
lib/baldr/renderer/edi_like_json.rb

Instance Method Summary collapse

Instance Method Details

#draw(segments, params = {}) ⇒ Object



5
6
7
8
# File 'lib/baldr/renderer/edi_like_json.rb', line 5

def draw(segments, params = {})
  segments = Array.wrap(segments)
  segments.map{ |s| draw_segment(s) }.to_json
end

#draw_segment(segment) ⇒ Object



10
11
12
13
14
15
# File 'lib/baldr/renderer/edi_like_json.rb', line 10

def draw_segment(segment)
  node = ActiveSupport::OrderedHash.new
  segment.elements.each.with_index { |e, i| node["#{segment.id}#{'%02d' % (i + 1)}"] = e if e.present? }
  segment.children.each { |loop| node[loop.id] = loop.segments.map { |s| draw_segment(s) } }
  node
end