class Eddy::Models::Interchange
Top level EDI interchange.
Attributes
control_number[RW]
A unique control number for the Interchange
. @return [Integer]
store[RW]
@return [Eddy::Data::Store] Data
store for the Interchange
.
transaction_sets[RW]
@return [Array<Eddy::Models::TransactionSet>]
Public Class Methods
create(_transaction_sets)
click to toggle source
@param _transaction_sets [Array<Eddy::Models::TransactionSet>] @return [Eddy::Models::Interchange]
# File lib/eddy/models/interchange.rb, line 23 def self.create(_transaction_sets) itch = Eddy::Models::Interchange.new() return itch end
new(store = Eddy::Data::Store.new())
click to toggle source
@param store [Eddy::Data::Store] (Eddy::Data::Store.new
) @return [void]
# File lib/eddy/models/interchange.rb, line 15 def initialize(store = Eddy::Data::Store.new()) self.control_number = Eddy::Data.new_interchange_control_number() self.store = store self.transaction_sets = [] end
Public Instance Methods
functional_groups()
click to toggle source
@return [Array<Eddy::Models::FunctionalGroup>]
# File lib/eddy/models/interchange.rb, line 41 def functional_groups() sorted_sets = {} self.transaction_sets.each do |ts| sorted_sets[ts.functional_group] ||= [] sorted_sets[ts.functional_group] << ts end i = 0 return sorted_sets.map do |_, value| i += 1 Eddy::Models::FunctionalGroup.new(self.store, i, *value) end end
render() { |isa, iea| ... }
click to toggle source
@yieldparam [Eddy::Segments::ISA] isa @yieldparam [Eddy::Segments::IEA] iea @return [String]
# File lib/eddy/models/interchange.rb, line 31 def render() f_groups = self.functional_groups() sep = self.store.segment_separator isa = Eddy::Segments::ISA.new(self.store, self.control_number) iea = Eddy::Segments::IEA.new(self.store, self.control_number, f_groups.length) yield(isa, iea) if block_given? return ([isa, f_groups, iea].flatten.map(&:render).join(sep) + sep).rstrip() end
Private Instance Methods
verify_transaction_set(transaction_set)
click to toggle source
@raise [ArgumentError] Unless `transaction_set` is a subclass of {Eddy::Models::TransactionSet} @param transaction_set [Eddy::Models::TransactionSet] @return [void]
# File lib/eddy/models/interchange.rb, line 59 def verify_transaction_set(transaction_set) raise ArgumentError unless transaction_set < Eddy::Models::TransactionSet raise ArgumentError unless transaction_set <= Eddy::Models::TransactionSet raise ArgumentError unless transaction_set.ancestors.include?(Eddy::Models::TransactionSet) raise ArgumentError unless transaction_set.superclass == Eddy::Models::TransactionSet return nil end