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