lib/eddy/models/transaction_set.rb in eddy-0.5.1 vs lib/eddy/models/transaction_set.rb in eddy-0.6.0
- old
+ new
@@ -1,100 +1,102 @@
module Eddy
- # Base class for EDI Transaction Sets.
- class TransactionSet
+ module Models
+ # Base class for EDI Transaction Sets.
+ class TransactionSet
- # @return [Integer]
- ID = nil
- # @return [String]
- NAME = nil
- # @return [String]
- FUNCTIONAL_GROUP = nil
+ # @return [Integer]
+ ID = nil
+ # @return [String]
+ NAME = nil
+ # @return [String]
+ FUNCTIONAL_GROUP = nil
- # @return [Array<Segment, Loop>]
- attr_accessor :components
- # @return [Eddy::Data::Store] Container used to distribute state throughout an Interchange.
- attr_accessor :store
+ # @return [Array<Segment, Loop>]
+ attr_accessor :components
+ # @return [Eddy::Data::Store] Container used to distribute state throughout an Interchange.
+ attr_accessor :store
- # @param store [Eddy::Data::Store]
- # @param components [Array<Segment, Loop>]
- # @return [void]
- def initialize(store, *components)
- self.store = store
- components.flatten!
- self.components = components || []
- end
+ # @param store [Eddy::Data::Store]
+ # @param components [Array<Segment, Loop>]
+ # @return [void]
+ def initialize(store, *components)
+ self.store = store
+ components.flatten!
+ self.components = components || []
+ end
- # @return [String]
- def id
- return self.class::ID
- end
+ # @return [String]
+ def id
+ return self.class::ID
+ end
- # @return [String]
- def self.id
- return self::ID
- end
+ # @return [String]
+ def self.id
+ return self::ID
+ end
- # @return [String]
- def functional_group
- return self.class::FUNCTIONAL_GROUP
- end
+ # @return [String]
+ def functional_group
+ return self.class::FUNCTIONAL_GROUP
+ end
- # @return [String]
- def self.functional_group
- return self::FUNCTIONAL_GROUP
- end
+ # @return [String]
+ def self.functional_group
+ return self::FUNCTIONAL_GROUP
+ end
- # @return [String]
- def name
- return self.class::NAME
- end
+ # @return [String]
+ def name
+ return self.class::NAME
+ end
- # @return [String]
- def self.name
- return self::NAME
- end
+ # @return [String]
+ def self.name
+ return self::NAME
+ end
- # Add `ST` and `SE` segments to the `components` array.
- #
- # @param control_number [Integer] (Eddy::Data.new_transaction_set_control_number())
- # @return [void]
- def add_envelope(control_number = Eddy::Data.new_transaction_set_control_number(self.id))
- st = Eddy::Segments::ST.new(self.store)
- st.TransactionSetIdentifierCode = self.id
- st.TransactionSetControlNumber = control_number
+ # Add `ST` and `SE` segments to the `components` array.
+ #
+ # @param control_number [Integer] (Eddy::Data.new_transaction_set_control_number())
+ # @return [void]
+ def add_envelope(control_number = Eddy::Data.new_transaction_set_control_number(self.id))
+ st = Eddy::Segments::ST.new(self.store)
+ st.TransactionSetIdentifierCode = self.id
+ st.TransactionSetControlNumber = control_number
- se = Eddy::Segments::SE.new(self.store)
- se.NumberOfIncludedSegments = self.all_components.length + 2
- se.TransactionSetControlNumber = control_number
+ se = Eddy::Segments::SE.new(self.store)
+ se.NumberOfIncludedSegments = self.all_components.length + 2
+ se.TransactionSetControlNumber = control_number
- self.components.unshift(st)
- self.components.push(se)
- end
+ self.components.unshift(st)
+ self.components.push(se)
+ end
- # This shouldn't be used.
- # An Interchange or FunctionalGroup should call `all_components` and render those itself.
- #
- # @param s_sep [String] (self.store.segment_separator)
- # @return [String]
- def render(s_sep = self.store.segment_separator)
- add_envelope()
- return self.all_components.map { |s| s.render(self.store.element_separator) }.join(s_sep)
- end
+ # This shouldn't be used.
+ # An Interchange or FunctionalGroup should call `all_components` and render those itself.
+ #
+ # @param s_sep [String] (self.store.segment_separator)
+ # @return [String]
+ def render(s_sep = self.store.segment_separator)
+ add_envelope()
+ return self.all_components.map { |s| s.render(self.store.element_separator) }.join(s_sep)
+ end
- # Return all contained Segments in a single, flattened array.
- #
- # @return [Array<Eddy::Segment>]
- def all_components()
- comps = self.components.map do |c|
- if c.is_a?(Eddy::Loop::Base)
- c.all_contents()
- elsif c.is_a?(Eddy::Segment)
- c
- else
- raise Eddy::Errors::RenderError
+ # Return all contained Segments in a single, flattened array.
+ #
+ # @return [Array<Eddy::Models::Segment>]
+ def all_components()
+ comps = self.components.map do |c|
+ if c.is_a?(Eddy::Models::Loop::Base)
+ c.all_contents()
+ elsif c.is_a?(Eddy::Models::Segment)
+ c
+ else
+ raise Eddy::Errors::RenderError
+ end
end
+ return comps.flatten
end
- return comps.flatten
- end
+ end
end
end