module ACH::File::TransmissionHeader

Hosts functionality required to append TransmissionHeader to a file. TransmissionHeader is optional and inherited from ACH::Record::Dynamic class, which means it may have variable number of fields with custom formatting. TransmissionHeader may be defined only once per file. You may specify default value for custom fields during definition

Example

class MyFile < ACH::File
  trasmission_header do
    starting      '->1' => '<'
    receiver_name '->10'
    ending        '->1' => '>'
  end
  # other definitions
end

file = MyFile.new do
  receiver_name 'MY PROVIDER'
end

Public Instance Methods

have_transmission_header?() click to toggle source

Helper instance method. Returns true if TransmissionHeader is defined within scope of it’s class.

@return [Boolean]

# File lib/ach/file/transmission_header.rb, line 71
def have_transmission_header?
  self.class.have_transmission_header?
end
transmission_header(fields = {}) click to toggle source

Builds TransmissionHeader record for self. Yields it to block, if passed. Returns nil if no TransmissionHeader is defined within scope of class.

@param [Hash] fields @return [ACH::File::TransmissionHeader]

# File lib/ach/file/transmission_header.rb, line 80
def transmission_header(fields = {})
  return nil unless have_transmission_header?

  merged_fields = fields_for(self.class::TransmissionHeader).merge(fields)

  @transmission_header ||= self.class::TransmissionHeader.new(merged_fields)
  @transmission_header.tap do |head|
    head.instance_eval(&Proc.new) if block_given?
  end
end