class Eddy::Models::FunctionalGroup

A group of `Eddy::Models::TransactionSet::Base` classes.

Attributes

control_number[RW]

A unique control number for the Functional Group. @return [Integer]

id[R]

@return [String]

store[RW]

Data store for the Interchange and all encompassed components. @return [Eddy::Data::Store]

transaction_sets[RW]

An array of Transaction Set instances. @return [Array<Eddy::Models::TransactionSet>]

Public Class Methods

new(store, control_number, *transaction_sets) click to toggle source

@param store [Eddy::Data::Store] @param control_number [Integer] @param transaction_sets [Eddy::Models::TransactionSet] @return [void]

# File lib/eddy/models/functional_group.rb, line 22
def initialize(store, control_number, *transaction_sets)
  self.store = store
  self.control_number = control_number
  transaction_sets.flatten!
  self.transaction_sets = transaction_sets || []
  if self.transaction_sets.length == 0
    raise ArgumentError, "At least one transaction set is required to create a functional group"
  end
  @id = self.transaction_sets.first.functional_group
end

Public Instance Methods

render() click to toggle source

@return [Array<#render>]

# File lib/eddy/models/functional_group.rb, line 34
def render()
  gs = Eddy::Segments::GS.new(self.store, self.control_number, @id)
  ge = Eddy::Segments::GE.new(self.store, self.control_number, self.transaction_sets.length)
  return [gs, self.transaction_sets, ge].flatten.map(&:render)
end