Sha256: 643fee1cec3bbe045787feb901999b8bdcd230017ba33fb99df46c8b982cb43d
Contents?: true
Size: 1.95 KB
Versions: 2
Compression:
Stored size: 1.95 KB
Contents
module Eddy # Top level EDI interchange. class Interchange # @return [Eddy::Data::Store] Data store for the Interchange. attr_accessor :store # @return [Array<Eddy::TransactionSet>] attr_accessor :transaction_sets # @param store [Eddy::Data::Store] (Eddy::Data::Store.new) # @return [void] def initialize(store = Eddy::Data::Store.new()) self.store = store self.transaction_sets = [] end # @param _transaction_sets [Array<Eddy::TransactionSet>] # @return [Eddy::Interchange] def self.create(_transaction_sets) itch = Eddy::Interchange.new() return itch end # @return [String] def render() ctrl_num = Eddy::Data.new_interchange_control_number() f_groups = self.functional_groups() sep = self.store.segment_separator isa = Eddy::Segments::ISA.new(self.store, ctrl_num) iea = Eddy::Segments::IEA.new(self.store, ctrl_num, f_groups.length) yield(isa, iea) if block_given? return [isa, f_groups, iea].flatten.map(&:render).join(sep) + sep end # @return [Array<Eddy::FunctionalGroup>] def functional_groups() sorted_sets = {} self.transaction_sets.each do |ts| sorted_sets[ts.functional_group] ||= [] sorted_sets[ts.functional_group] << ts end return sorted_sets.map { |_, value| Eddy::FunctionalGroup.new(self.store, *value) } end private # @raise [ArgumentError] Unless `transaction_set` is a subclass of {Eddy::TransactionSet} # @param transaction_set [Eddy::TransactionSet] # @return [void] def verify_transaction_set(transaction_set) raise ArgumentError unless transaction_set < Eddy::TransactionSet raise ArgumentError unless transaction_set <= Eddy::TransactionSet raise ArgumentError unless transaction_set.ancestors.include?(Eddy::TransactionSet) raise ArgumentError unless transaction_set.superclass == Eddy::TransactionSet return nil end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
eddy-0.5.1 | lib/eddy/models/interchange.rb |
eddy-0.5.0 | lib/eddy/models/interchange.rb |