ach_builder 0.0.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +2 -1
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +10 -0
- data/Gemfile +11 -2
- data/MIT-LICENSE +1 -1
- data/README.md +19 -11
- data/Rakefile +44 -0
- data/ach_builder.gemspec +9 -5
- data/lib/ach/batch.rb +10 -32
- data/lib/ach/batch/builder.rb +60 -0
- data/lib/ach/batch/control.rb +18 -3
- data/lib/ach/batch/header.rb +21 -4
- data/lib/ach/component.rb +125 -43
- data/lib/ach/component/has_many_association.rb +155 -0
- data/lib/ach/constants.rb +15 -1
- data/lib/ach/file.rb +50 -44
- data/lib/ach/file/builder.rb +81 -0
- data/lib/ach/file/control.rb +15 -3
- data/lib/ach/file/header.rb +20 -3
- data/lib/ach/file/reader.rb +103 -0
- data/lib/ach/file/transmission_header.rb +77 -0
- data/lib/ach/formatter.rb +113 -76
- data/lib/ach/formatter/rule.rb +27 -0
- data/lib/ach/record.rb +13 -64
- data/lib/ach/record/addenda.rb +25 -0
- data/lib/ach/record/base.rb +109 -0
- data/lib/ach/record/dynamic.rb +58 -0
- data/lib/ach/record/entry.rb +49 -0
- data/lib/ach/record/tail.rb +10 -0
- data/lib/ach/validations.rb +5 -3
- data/lib/ach/version.rb +1 -1
- data/lib/ach_builder.rb +20 -33
- data/spec/batch_spec.rb +23 -11
- data/spec/componenet/has_many_association_spec.rb +111 -0
- data/spec/file_spec.rb +173 -81
- data/spec/formatter_spec.rb +9 -9
- data/spec/reader_spec.rb +55 -0
- data/spec/record/addenda_spec.rb +8 -0
- data/spec/record/base_spec.rb +53 -0
- data/spec/record/dynamic_spec.rb +74 -0
- data/spec/record/entry_spec.rb +7 -0
- data/spec/record/tail_spec.rb +7 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/support/ach_file_factory.rb +70 -0
- data/spec/support/examples/well_fargo_empty.ach +2 -0
- data/spec/support/examples/well_fargo_with_data.ach +6 -0
- data/spec/support/helpers/ach_files_examples.rb +17 -0
- metadata +69 -26
- data/lib/ach/entry.rb +0 -31
- data/lib/ach/tail.rb +0 -6
- data/spec/entry_spec.rb +0 -7
- data/spec/record_spec.rb +0 -34
- data/spec/tail_spec.rb +0 -7
data/lib/ach/entry.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
module ACH
|
2
|
-
class Entry < Record
|
3
|
-
CREDIT_TRANSACTION_CODE_ENDING_DIGITS = ('0'..'4').to_a.freeze
|
4
|
-
|
5
|
-
fields :record_type,
|
6
|
-
:transaction_code,
|
7
|
-
:routing_number,
|
8
|
-
:bank_account,
|
9
|
-
:amount,
|
10
|
-
:customer_acct,
|
11
|
-
:customer_name,
|
12
|
-
:transaction_type,
|
13
|
-
:addenda,
|
14
|
-
:bank_15
|
15
|
-
|
16
|
-
defaults :record_type => 6,
|
17
|
-
:transaction_code => 27,
|
18
|
-
:transaction_type => 'S',
|
19
|
-
:customer_acct => '',
|
20
|
-
:addenda => 0,
|
21
|
-
:bank_15 => ''
|
22
|
-
|
23
|
-
def debit?
|
24
|
-
!credit?
|
25
|
-
end
|
26
|
-
|
27
|
-
def credit?
|
28
|
-
CREDIT_TRANSACTION_CODE_ENDING_DIGITS.include? transaction_code.to_s[1..1]
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
data/lib/ach/tail.rb
DELETED
data/spec/entry_spec.rb
DELETED
data/spec/record_spec.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe ACH::Record do
|
4
|
-
before(:all) do
|
5
|
-
class Entry < ACH::Record
|
6
|
-
fields :customer_name, :amount
|
7
|
-
defaults :customer_name => 'JOHN SMITH'
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should have 2 ordered fields" do
|
12
|
-
Entry.fields.should == [:customer_name, :amount]
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should create a record with default value" do
|
16
|
-
Entry.new.customer_name.should == 'JOHN SMITH'
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should overwrite default value" do
|
20
|
-
entry = Entry.new(:customer_name => 'SMITH JOHN')
|
21
|
-
entry.customer_name.should == 'SMITH JOHN'
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should generate formatted string" do
|
25
|
-
entry = Entry.new :amount => 1599
|
26
|
-
entry.to_s!.should == "JOHN SMITH".ljust(22) + "1599".rjust(10, '0')
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should raise exception with unfilled value" do
|
30
|
-
lambda{
|
31
|
-
Entry.new.to_s!
|
32
|
-
}.should raise_error(ACH::Record::EmptyField)
|
33
|
-
end
|
34
|
-
end
|