Module: ACH::File::TransmissionHeader

Extended by:
ActiveSupport::Concern
Included in:
ACH::File
Defined in:
lib/ach/file/transmission_header.rb

Overview

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

Defined Under Namespace

Modules: ClassMethods Classes: EmptyTransmissionHeaderError, RedefinedTransmissionHeaderError

Instance Method Summary collapse

Instance Method Details

#have_transmission_header?Boolean

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

Returns:

  • (Boolean)


60
61
62
# File 'lib/ach/file/transmission_header.rb', line 60

def have_transmission_header?
  self.class.have_transmission_header?
end

#transmission_header(fields = {}, &block) ⇒ Object

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



66
67
68
69
70
71
72
73
74
75
# File 'lib/ach/file/transmission_header.rb', line 66

def transmission_header(fields = {}, &block)
  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(&block) if block
  end
end