Class: ACH::Record
Defined Under Namespace
Classes: EmptyField, UnknownField
Constant Summary
Constants included
from Constants
Constants::BLOCKING_FACTOR, Constants::FORMAT_CODE, Constants::RECORD_SIZE
Class Method Summary
collapse
Instance Method Summary
collapse
#errors, #valid?
Constructor Details
#initialize(fields = {}, &block) ⇒ Record
Returns a new instance of Record.
39
40
41
42
43
44
45
|
# File 'lib/ach/record.rb', line 39
def initialize fields = {}, &block
defaults.each do |key, value|
self.fields[key] = Proc === value ? value.call : value
end
self.fields.merge!(fields)
instance_eval(&block) if block
end
|
Class Method Details
.defaults(default_values = nil) ⇒ Object
34
35
36
37
|
# File 'lib/ach/record.rb', line 34
def self.defaults default_values = nil
return @defaults if default_values.nil?
@defaults = default_values.freeze
end
|
.fields(*field_names) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/ach/record.rb', line 18
def self.fields *field_names
return @fields if field_names.empty?
@fields = field_names
@fields.each do |field|
raise UnknownField.new(field, name) unless Formatter::RULES.key?(field)
define_method(field) do |*args|
args.empty? ? fields[field] : (fields[field] = args.first)
end
define_method("#{field}=") do |val|
fields[field] = val
end
end
end
|
Instance Method Details
#[]=(name, val) ⇒ Object
55
56
57
|
# File 'lib/ach/record.rb', line 55
def []= name, val
fields[name] = val
end
|
#defaults ⇒ Object
47
48
49
|
# File 'lib/ach/record.rb', line 47
def defaults
self.class.defaults
end
|
#fields ⇒ Object
51
52
53
|
# File 'lib/ach/record.rb', line 51
def fields
@fields ||= {}
end
|
#to_s! ⇒ Object
59
60
61
62
63
64
|
# File 'lib/ach/record.rb', line 59
def to_s!
self.class.fields.map do |name|
raise EmptyField.new(name) if @fields[name].nil?
Formatter.format name, @fields[name]
end.join
end
|