class Eancom::Edifact::Body
Attributes
hash[RW]
items[RW]
messages[RW]
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/eancom/edifact/body.rb, line 7 def initialize super @hash = {} @messages = [] end
Public Instance Methods
start_item(segment)
click to toggle source
# File lib/eancom/edifact/body.rb, line 40 def start_item(segment) if @item && !@item.empty? @message.add_item(@item.to_json_hash) end @item = Eancom::Edifact::Item.new() end
start_message(segment)
click to toggle source
# File lib/eancom/edifact/body.rb, line 29 def start_message(segment) if @message @messages << @message.to_json_hash if @item && !@item.empty? @message.add_item(@item.to_json_hash) end @item = nil end @message = Eancom::Edifact::Message.new() end
to_json_hash()
click to toggle source
# File lib/eancom/edifact/body.rb, line 13 def to_json_hash @segments.each do |segment| start_message(segment) if segment.starts_message? start_item(segment) if segment.starts_item? if @item @item << segment else @message << segment end end @message.add_item(@item.to_json_hash) @messages << @message.to_json_hash hash.merge!({ messages: messages }) { body: hash } end
Private Instance Methods
group_name(segment)
click to toggle source
# File lib/eancom/edifact/body.rb, line 58 def group_name(segment) return segment.group_name end
merge(hash, segment)
click to toggle source
# File lib/eancom/edifact/body.rb, line 49 def merge(hash, segment) if name = group_name(segment) hash[name] = [] if hash[name].nil? hash[name] << segment.to_json_hash else hash.merge!(segment.to_json_hash) end end