lib/eancom/edifact/document.rb in eancom-1.6.3 vs lib/eancom/edifact/document.rb in eancom-2.0.0

- old
+ new

@@ -1,27 +1,26 @@ -# frozen_string_literal: true - module Eancom module Edifact class Document + attr_accessor :header_element, :body_element, :footer_element def initialize - @header_element = Header.new - @body_element = Body.new - @footer_element = Footer.new + @header_element = Header.new() + @body_element = Body.new() + @footer_element = Footer.new() end - def header + def header(&block) yield(@header_element) end - def body + def body(&block) yield(@body_element) end - def footer + def footer(&block) yield(@footer_element) end def add_to_header(segment) @header_element.segment(segment) @@ -33,24 +32,29 @@ def add_to_footer(segment) @footer_element.segment(segment) end + # Should header and footer segments be added to total_segments? def total_segments total = 0 total += @body_element.segments.count total end def to_s(debug: false) - "#{@header_element.to_s(debug: debug)}#{@body_element.to_s(debug: debug)}#{@footer_element.to_s(debug: debug)}" + stream = '' + stream << @header_element.to_s(debug: debug) + stream << @body_element.to_s(debug: debug) + stream << @footer_element.to_s(debug: debug) + stream end - def to_json(_obj = nil) - { - **@header_element.to_json_hash, - **@body_element.to_json_hash - }.to_json + def to_json + hash = {} + hash.merge! @header_element.to_json_hash + hash.merge! @body_element.to_json_hash + hash.to_json end end end end