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