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)


71
72
73
# File 'lib/ach/file/transmission_header.rb', line 71

def have_transmission_header?
  self.class.have_transmission_header?
end

#transmission_header(fields = {}) ⇒ ACH::File::TransmissionHeader

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

Parameters:

  • fields (Hash) (defaults to: {})

Returns:



80
81
82
83
84
85
86
87
88
89
# 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