Module: Baldr::Renderer::X12
Constant Summary collapse
- DEFAULT_SEPARATORS =
{ element: '*', segment: '~', component: '>', }.freeze
Instance Method Summary collapse
- #draw(segments, params = {}) ⇒ Object
- #draw_loop(loop, separators) ⇒ Object
- #draw_segment(segment, separators) ⇒ Object
Instance Method Details
#draw(segments, params = {}) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/baldr/renderer/x12.rb', line 11 def draw(segments, params = {}) segments = Array.wrap(segments) separators = params[:separators] || DEFAULT_SEPARATORS separators[:segment] = separators[:segment].pack('c*') if separators[:segment].is_a?(Array) segments.map{ |s| draw_segment(s, separators).join }.join end |
#draw_loop(loop, separators) ⇒ Object
24 25 26 |
# File 'lib/baldr/renderer/x12.rb', line 24 def draw_loop(loop, separators) loop.segments.map { |s| draw_segment(s, separators) } end |
#draw_segment(segment, separators) ⇒ Object
18 19 20 21 22 |
# File 'lib/baldr/renderer/x12.rb', line 18 def draw_segment(segment, separators) a = [segment.id] + segment.elements.reverse.drop_while{ |i| i.nil? }.reverse ["#{a.join(separators[:element])}#{separators[:segment]}"] + segment.children.map{ |l| draw_loop(l, separators) } end |