aba 0.4.0 → 0.5.0
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 +5 -5
- data/.gitignore +1 -0
- data/.travis.yml +3 -4
- data/README.md +21 -1
- data/aba.gemspec +4 -4
- data/lib/aba.rb +2 -0
- data/lib/aba/batch.rb +31 -25
- data/lib/aba/entry.rb +17 -0
- data/lib/aba/return.rb +72 -0
- data/lib/aba/transaction.rb +2 -8
- data/lib/aba/validations.rb +15 -0
- data/lib/aba/version.rb +1 -1
- data/spec/lib/aba/batch_spec.rb +54 -16
- data/spec/lib/aba/return_spec.rb +47 -0
- metadata +20 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f7d2996812bbfd9d6386cef252e680024545ad59b01eec0d6645d8cf75dafe6a
|
4
|
+
data.tar.gz: 584aad9a1c2b922680da873f1a95922dfa4864c5e54ac979d6ed6f5eb01e3094
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4be17e99ad4fedbb404bb2305e0a310afafc96c0f2b39f57f49d76b198e7018a7fc9997b35441d2209bce37986487d683fcfd5f20d049acea8581804669ecc8b
|
7
|
+
data.tar.gz: b09e75f48ce6ddab89dc0fc82f1d9be3a87f573db08591d65158203b2b1a4d1ae6c3ec6cbf34437d1c4d15842e4e93f07f75977bbf5ac063338fbd2dc519a177
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -19,7 +19,7 @@ aba = Aba.batch(
|
|
19
19
|
process_at: Time.now.strftime("%d%m%y")
|
20
20
|
)
|
21
21
|
|
22
|
-
# Add transactions
|
22
|
+
# Add transactions...
|
23
23
|
10.times do
|
24
24
|
aba.add_transaction(
|
25
25
|
{
|
@@ -36,6 +36,26 @@ aba = Aba.batch(
|
|
36
36
|
)
|
37
37
|
end
|
38
38
|
|
39
|
+
# ...or add returns
|
40
|
+
10.times do
|
41
|
+
aba.add_return(
|
42
|
+
{
|
43
|
+
bsb: '453-543',
|
44
|
+
account_number: '45656733',
|
45
|
+
amount: 10000,
|
46
|
+
account_name: 'John Doe',
|
47
|
+
transaction_code: 53,
|
48
|
+
lodgement_reference: 'R435564',
|
49
|
+
trace_bsb: '342-342',
|
50
|
+
trace_account_number: '3244654',
|
51
|
+
name_of_remitter: 'Remitter',
|
52
|
+
return_code: 8,
|
53
|
+
original_user_id: 654321,
|
54
|
+
original_processing_day: 12,
|
55
|
+
}
|
56
|
+
)
|
57
|
+
end
|
58
|
+
|
39
59
|
puts aba.to_s # View output
|
40
60
|
File.write("/Users/me/dd_#{Time.now.to_i}.aba", aba.to_s) # or write output to file
|
41
61
|
```
|
data/aba.gemspec
CHANGED
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_development_dependency "bundler"
|
22
|
-
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "pry"
|
21
|
+
spec.add_development_dependency "bundler"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
spec.add_development_dependency "pry"
|
24
24
|
spec.add_development_dependency "rspec", "~> 3.0"
|
25
25
|
|
26
|
-
spec.required_ruby_version = '>=
|
26
|
+
spec.required_ruby_version = '>= 2.5.0'
|
27
27
|
end
|
data/lib/aba.rb
CHANGED
data/lib/aba/batch.rb
CHANGED
@@ -2,7 +2,7 @@ class Aba
|
|
2
2
|
class Batch
|
3
3
|
include Aba::Validations
|
4
4
|
|
5
|
-
attr_accessor :bsb, :financial_institution, :user_name, :user_id, :description, :process_at, :
|
5
|
+
attr_accessor :bsb, :financial_institution, :user_name, :user_id, :description, :process_at, :entries
|
6
6
|
|
7
7
|
# BSB
|
8
8
|
validates_bsb :bsb, allow_blank: true
|
@@ -34,8 +34,7 @@ class Aba
|
|
34
34
|
send("#{key}=", value)
|
35
35
|
end
|
36
36
|
|
37
|
-
@
|
38
|
-
@transactions = {}
|
37
|
+
@entries = []
|
39
38
|
|
40
39
|
unless transactions.nil? || transactions.empty?
|
41
40
|
transactions.to_a.each do |t|
|
@@ -47,56 +46,63 @@ class Aba
|
|
47
46
|
end
|
48
47
|
|
49
48
|
def to_s
|
50
|
-
raise RuntimeError, 'No
|
49
|
+
raise RuntimeError, 'No entries present - add one using `add_transaction` or `add_return`' if entries.empty?
|
51
50
|
raise RuntimeError, 'ABA data is invalid - check the contents of `errors`' unless valid?
|
52
51
|
|
53
52
|
# Descriptive record
|
54
53
|
output = "#{descriptive_record}\r\n"
|
55
54
|
|
56
55
|
# Transactions records
|
57
|
-
output +=
|
56
|
+
output += entries.map { |t| t.to_s }.join("\r\n")
|
58
57
|
|
59
58
|
# Batch control record
|
60
59
|
output += "\r\n#{batch_control_record}"
|
61
60
|
end
|
62
61
|
|
63
62
|
def add_transaction(attrs = {})
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
63
|
+
add_entry(Aba::Transaction, attrs)
|
64
|
+
end
|
65
|
+
|
66
|
+
def add_return(attrs = {})
|
67
|
+
add_entry(Aba::Return, attrs)
|
68
|
+
end
|
69
|
+
|
70
|
+
def transactions
|
71
|
+
entries.select { |entry| entry.instance_of?(Aba::Transaction) }
|
72
72
|
end
|
73
73
|
|
74
74
|
def transactions_valid?
|
75
|
-
!
|
75
|
+
!transactions.map { |t| t.valid? }.include?(false)
|
76
76
|
end
|
77
77
|
|
78
78
|
def valid?
|
79
|
-
!has_errors? &&
|
79
|
+
!has_errors? && !has_entry_errors?
|
80
80
|
end
|
81
81
|
|
82
82
|
def errors
|
83
83
|
# Run validations
|
84
84
|
has_errors?
|
85
|
-
|
85
|
+
has_entry_errors?
|
86
86
|
|
87
87
|
# Build errors
|
88
88
|
all_errors = {}
|
89
89
|
all_errors[:aba] = self.error_collection unless self.error_collection.empty?
|
90
|
-
|
91
|
-
all_errors[:
|
90
|
+
entry_error_collection = entries.each_with_index.map { |t, i| [i, t.error_collection] }.reject { |e| e[1].nil? || e[1].empty? }.to_h
|
91
|
+
all_errors[:entries] = entry_error_collection unless entry_error_collection.empty?
|
92
92
|
|
93
93
|
all_errors unless all_errors.empty?
|
94
94
|
end
|
95
95
|
|
96
96
|
private
|
97
97
|
|
98
|
-
def
|
99
|
-
|
98
|
+
def add_entry(type, attrs)
|
99
|
+
(attrs.instance_of?(type) ? attrs : type.new(attrs)).tap do |entry|
|
100
|
+
entries << entry
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def has_entry_errors?
|
105
|
+
entries.map { |t| t.valid? }.include?(false)
|
100
106
|
end
|
101
107
|
|
102
108
|
def descriptive_record
|
@@ -163,10 +169,10 @@ class Aba
|
|
163
169
|
credit_total_amount = 0
|
164
170
|
debit_total_amount = 0
|
165
171
|
|
166
|
-
|
167
|
-
net_total_amount += t
|
168
|
-
credit_total_amount += t
|
169
|
-
debit_total_amount += t
|
172
|
+
entries.each do |t|
|
173
|
+
net_total_amount += t.amount.to_i
|
174
|
+
credit_total_amount += t.amount.to_i if t.amount.to_i > 0
|
175
|
+
debit_total_amount += t.amount.to_i if t.amount.to_i < 0
|
170
176
|
end
|
171
177
|
|
172
178
|
# Record type
|
@@ -207,7 +213,7 @@ class Aba
|
|
207
213
|
# Total Item Count
|
208
214
|
# Max: 6
|
209
215
|
# Char position: 75-80
|
210
|
-
output +=
|
216
|
+
output += entries.size.to_s.rjust(6, "0")
|
211
217
|
|
212
218
|
# Reserved
|
213
219
|
# Max: 40
|
data/lib/aba/entry.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
class Aba
|
2
|
+
class Entry
|
3
|
+
def initialize(attrs = {})
|
4
|
+
attrs.each do |key, value|
|
5
|
+
send("#{key}=", value)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
def credit?
|
10
|
+
(50..57).include?(transaction_code.to_i)
|
11
|
+
end
|
12
|
+
|
13
|
+
def debit?
|
14
|
+
transaction_code.to_i == 13
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/aba/return.rb
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
class Aba
|
2
|
+
class Return < Entry
|
3
|
+
include Aba::Validations
|
4
|
+
|
5
|
+
attr_accessor :account_number, :transaction_code, :amount, :account_name,
|
6
|
+
:bsb, :trace_bsb, :trace_account_number, :name_of_remitter,
|
7
|
+
:return_code, :lodgement_reference,
|
8
|
+
:original_processing_day, :original_user_id
|
9
|
+
|
10
|
+
# BSB
|
11
|
+
validates_bsb :bsb
|
12
|
+
|
13
|
+
# Account Number
|
14
|
+
validates_account_number :account_number
|
15
|
+
|
16
|
+
# Indicator
|
17
|
+
validates_return_code :return_code
|
18
|
+
|
19
|
+
# Transaction Code
|
20
|
+
validates_transaction_code :transaction_code
|
21
|
+
|
22
|
+
# Amount
|
23
|
+
validates_amount :amount
|
24
|
+
|
25
|
+
# Original Day of Processing
|
26
|
+
validates_integer :original_processing_day, :unsigned
|
27
|
+
|
28
|
+
# Original User Id
|
29
|
+
validates_max_length :original_user_id, 6
|
30
|
+
validates_integer :original_user_id, :unsigned
|
31
|
+
|
32
|
+
# Account Name
|
33
|
+
validates_max_length :account_name, 32
|
34
|
+
validates_becs :account_name
|
35
|
+
|
36
|
+
# Lodgement Reference
|
37
|
+
validates_max_length :lodgement_reference, 18
|
38
|
+
validates_becs :lodgement_reference
|
39
|
+
|
40
|
+
# Trace Record
|
41
|
+
validates_bsb :trace_bsb
|
42
|
+
validates_account_number :trace_account_number
|
43
|
+
|
44
|
+
# Name of Remitter
|
45
|
+
validates_max_length :name_of_remitter, 16
|
46
|
+
validates_becs :name_of_remitter
|
47
|
+
|
48
|
+
|
49
|
+
# Allow dashes to be input, but remove them from output
|
50
|
+
def account_number
|
51
|
+
@account_number ? @account_number.to_s.delete('-') : nil
|
52
|
+
end
|
53
|
+
|
54
|
+
def to_s
|
55
|
+
raise 'Transaction data is invalid - check the contents of `errors`' unless valid?
|
56
|
+
|
57
|
+
format('2%-7s%9s%1d%2d%010d%-32s%-18s%-7s%9s%-16s%02d%6s',
|
58
|
+
bsb,
|
59
|
+
account_number,
|
60
|
+
return_code,
|
61
|
+
transaction_code,
|
62
|
+
amount.to_i.abs,
|
63
|
+
account_name,
|
64
|
+
lodgement_reference,
|
65
|
+
trace_bsb,
|
66
|
+
trace_account_number,
|
67
|
+
name_of_remitter,
|
68
|
+
original_processing_day.to_i,
|
69
|
+
original_user_id)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
data/lib/aba/transaction.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
class Aba
|
2
|
-
class Transaction
|
2
|
+
class Transaction < Entry
|
3
3
|
include Aba::Validations
|
4
4
|
|
5
5
|
attr_accessor :account_number, :transaction_code, :amount, :account_name,
|
@@ -19,7 +19,7 @@ class Aba
|
|
19
19
|
validates_transaction_code :transaction_code
|
20
20
|
|
21
21
|
# Amount
|
22
|
-
|
22
|
+
validates_amount :amount
|
23
23
|
|
24
24
|
# Account Name
|
25
25
|
validates_max_length :account_name, 32
|
@@ -38,12 +38,6 @@ class Aba
|
|
38
38
|
validates_becs :name_of_remitter
|
39
39
|
|
40
40
|
|
41
|
-
def initialize(attrs = {})
|
42
|
-
attrs.each do |key, value|
|
43
|
-
send("#{key}=", value)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
41
|
# Allow dashes to be input, but remove them from output
|
48
42
|
def account_number
|
49
43
|
@account_number ? @account_number.to_s.gsub('-', '') : nil
|
data/lib/aba/validations.rb
CHANGED
@@ -46,6 +46,12 @@ class Aba
|
|
46
46
|
else
|
47
47
|
self.error_collection << "#{attribute} must be an unsigned number" unless value.to_s =~ /\A\d+\Z/
|
48
48
|
end
|
49
|
+
when :matches_transaction_code
|
50
|
+
if debit? && value.to_i > 0
|
51
|
+
self.error_collection << "#{attribute} is positive but the transaction type is a debit"
|
52
|
+
elsif credit? && value.to_i < 0
|
53
|
+
self.error_collection << "#{attribute} is negative but the transaction type is a credit"
|
54
|
+
end
|
49
55
|
when :account_number
|
50
56
|
if value.to_s =~ /\A[0\ ]+\Z/ || value.to_s !~ /\A[a-z\d\ ]{1,9}\Z/
|
51
57
|
self.error_collection << "#{attribute} must be a valid account number"
|
@@ -88,6 +94,11 @@ class Aba
|
|
88
94
|
add_validation_attribute(attribute, :integer, signed)
|
89
95
|
end
|
90
96
|
|
97
|
+
def validates_amount(attribute)
|
98
|
+
add_validation_attribute(attribute, :integer, true)
|
99
|
+
add_validation_attribute(attribute, :matches_transaction_code)
|
100
|
+
end
|
101
|
+
|
91
102
|
def validates_account_number(attribute)
|
92
103
|
add_validation_attribute(attribute, :account_number)
|
93
104
|
end
|
@@ -104,6 +115,10 @@ class Aba
|
|
104
115
|
add_validation_attribute(attribute, :transaction_code)
|
105
116
|
end
|
106
117
|
|
118
|
+
def validates_return_code(attribute)
|
119
|
+
add_validation_attribute(attribute, :integer, :return_code)
|
120
|
+
end
|
121
|
+
|
107
122
|
private
|
108
123
|
|
109
124
|
def add_validation_attribute(attribute, type, param = true)
|
data/lib/aba/version.rb
CHANGED
data/spec/lib/aba/batch_spec.rb
CHANGED
@@ -3,19 +3,33 @@
|
|
3
3
|
require "spec_helper"
|
4
4
|
|
5
5
|
describe Aba::Batch do
|
6
|
-
|
6
|
+
subject(:batch) { Aba::Batch.new(financial_institution: "WPC", user_name: "John Doe",
|
7
7
|
user_id: "466364", description: "Payroll", process_at: "190615") }
|
8
|
-
let(:
|
8
|
+
let(:transaction_amounts) { [[53, 30], [13, -20]] }
|
9
9
|
let(:transactions) do
|
10
|
-
|
10
|
+
transaction_amounts.map do |(transaction_code, amount)|
|
11
11
|
Aba::Transaction.new(bsb: '342-342', account_number: '3244654', amount: amount,
|
12
|
-
account_name: 'John Doe', transaction_code:
|
12
|
+
account_name: 'John Doe', transaction_code: transaction_code,
|
13
13
|
lodgement_reference: 'R435564', trace_bsb: '453-543',
|
14
14
|
trace_account_number: '45656733', name_of_remitter: 'Remitter')
|
15
15
|
end
|
16
16
|
end
|
17
|
-
|
18
|
-
|
17
|
+
before { transactions.each { |trx| batch.add_transaction(trx) } }
|
18
|
+
|
19
|
+
let(:return_amounts) { [[53, 3], [13, -2]] }
|
20
|
+
let(:returns) do
|
21
|
+
return_amounts.map do |(transaction_code, amount)|
|
22
|
+
Aba::Return.new(bsb: '453-543', account_number: '45656733', amount: amount,
|
23
|
+
account_name: 'John Doe', transaction_code: transaction_code,
|
24
|
+
lodgement_reference: 'R435564', trace_bsb: '342-342',
|
25
|
+
trace_account_number: '3244654', name_of_remitter: 'Remitter',
|
26
|
+
return_code: 8, original_user_id: 654321,
|
27
|
+
original_processing_day: 12,
|
28
|
+
|
29
|
+
)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
before { returns.each { |trx| batch.add_return(trx) } }
|
19
33
|
|
20
34
|
describe "#to_s" do
|
21
35
|
|
@@ -23,14 +37,14 @@ describe Aba::Batch do
|
|
23
37
|
|
24
38
|
context 'without bsb' do
|
25
39
|
it "should return a string containing the descriptive record without the bsb" do
|
26
|
-
expect(
|
40
|
+
expect(batch.to_s).to include("0 01WPC John Doe 466364Payroll 190615 \r\n")
|
27
41
|
end
|
28
42
|
end
|
29
43
|
|
30
44
|
context 'with bsb' do
|
31
|
-
before {
|
45
|
+
before { batch.bsb = "123-345" }
|
32
46
|
it "should return a string containing the descriptive record with the bsb" do
|
33
|
-
expect(
|
47
|
+
expect(batch.to_s).to include("0123-345 01WPC John Doe 466364Payroll 190615 \r\n")
|
34
48
|
end
|
35
49
|
end
|
36
50
|
end
|
@@ -38,26 +52,50 @@ describe Aba::Batch do
|
|
38
52
|
|
39
53
|
context 'when detail record' do
|
40
54
|
|
41
|
-
it "should contain
|
42
|
-
expect(
|
43
|
-
expect(
|
55
|
+
it "should contain transaction & return records" do
|
56
|
+
expect(batch.to_s).to include("1342-342 3244654 530000000030John Doe R435564 453-543 45656733Remitter 00000000\r\n")
|
57
|
+
expect(batch.to_s).to include("1342-342 3244654 130000000020John Doe R435564 453-543 45656733Remitter 00000000\r\n")
|
58
|
+
expect(batch.to_s).to include("2453-543 456567338530000000003John Doe R435564 342-342 3244654Remitter 12654321\r\n")
|
59
|
+
expect(batch.to_s).to include("2453-543 456567338130000000002John Doe R435564 342-342 3244654Remitter 12654321\r\n")
|
44
60
|
end
|
45
61
|
end
|
46
62
|
|
47
63
|
context 'when file total record' do
|
48
64
|
|
49
65
|
context 'with unbalanced transactions' do
|
50
|
-
it "should return a string
|
51
|
-
expect(
|
66
|
+
it "should return a string where the net total is not zero" do
|
67
|
+
expect(batch.to_s).to include("7999-999 000000001100000000330000000022 000004 ")
|
52
68
|
end
|
53
69
|
end
|
54
70
|
|
55
71
|
context 'with balanced transactions' do
|
56
|
-
let(:
|
72
|
+
let(:transaction_amounts) { [[50, 30], [50, 30], [13, -60]] }
|
73
|
+
let(:return_amounts) { [[50, 3], [50, 3], [13, -6]] }
|
57
74
|
it "should return a string where the net total is zero" do
|
58
|
-
expect(
|
75
|
+
expect(batch.to_s).to include("7999-999 000000000000000000660000000066 000006 ")
|
59
76
|
end
|
60
77
|
end
|
61
78
|
end
|
62
79
|
end
|
80
|
+
|
81
|
+
describe "#errors" do
|
82
|
+
|
83
|
+
let(:errors) { subject.errors }
|
84
|
+
|
85
|
+
it "is empty" do
|
86
|
+
expect(errors).to be_nil
|
87
|
+
end
|
88
|
+
|
89
|
+
context "with an invalid amount" do
|
90
|
+
let(:transaction_amounts) do
|
91
|
+
[[53, 1], [53, -1], [13, 'def']]
|
92
|
+
end
|
93
|
+
it "reports the errors" do
|
94
|
+
expect(errors).to eq(:entries => {
|
95
|
+
1 => ["amount is negative but the transaction type is a credit"],
|
96
|
+
2 => ["amount must be a number"]
|
97
|
+
})
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
63
101
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
describe Aba::Return do
|
6
|
+
let(:transaction_params) { {
|
7
|
+
:trace_account_number => 23432342,
|
8
|
+
:transaction_code => 53,
|
9
|
+
:amount => 50050,
|
10
|
+
:account_name => "John Doe",
|
11
|
+
:trace_bsb => "345-453",
|
12
|
+
:return_code => 8,
|
13
|
+
:lodgement_reference => "R45343",
|
14
|
+
:bsb => "123-234",
|
15
|
+
:account_number => "4647642",
|
16
|
+
:name_of_remitter => "Remitter",
|
17
|
+
:original_processing_day => "07",
|
18
|
+
:original_user_id => "054321",
|
19
|
+
} }
|
20
|
+
subject(:transaction) { Aba::Return.new(transaction_params) }
|
21
|
+
|
22
|
+
describe "#to_s" do
|
23
|
+
it "should create a transaction row" do
|
24
|
+
expect(subject.to_s).to include(
|
25
|
+
"2123-234 46476428530000050050John Doe R45343 345-453 23432342Remitter 07054321")
|
26
|
+
# | | || | | | | | | | |
|
27
|
+
# +-bsb | || +-amount +-account_name | | | | | +-original_user_id
|
28
|
+
# | |+-transaction_code | | | | +-original_processing_day
|
29
|
+
# | +-return_code | | | +-name_of_remitter
|
30
|
+
# +-account_number | | +-trace_account_number
|
31
|
+
# | +-trace_bsb
|
32
|
+
# +-lodgement_reference
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "#valid?" do
|
37
|
+
it "should be valid" do
|
38
|
+
expect(subject.valid?).to eq true
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should not be valid" do
|
42
|
+
transaction_params.delete(:bsb)
|
43
|
+
expect(subject.valid?).to eq false
|
44
|
+
expect(subject.errors).to eq ["bsb format is incorrect"]
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrey Bazhutkin
|
@@ -9,50 +9,50 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-07-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '0'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: pry
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - "
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '0
|
48
|
+
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - "
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '0
|
55
|
+
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rspec
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -85,10 +85,13 @@ files:
|
|
85
85
|
- aba.gemspec
|
86
86
|
- lib/aba.rb
|
87
87
|
- lib/aba/batch.rb
|
88
|
+
- lib/aba/entry.rb
|
89
|
+
- lib/aba/return.rb
|
88
90
|
- lib/aba/transaction.rb
|
89
91
|
- lib/aba/validations.rb
|
90
92
|
- lib/aba/version.rb
|
91
93
|
- spec/lib/aba/batch_spec.rb
|
94
|
+
- spec/lib/aba/return_spec.rb
|
92
95
|
- spec/lib/aba/transaction_spec.rb
|
93
96
|
- spec/lib/aba/validations_spec.rb
|
94
97
|
- spec/lib/aba_spec.rb
|
@@ -105,20 +108,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
105
108
|
requirements:
|
106
109
|
- - ">="
|
107
110
|
- !ruby/object:Gem::Version
|
108
|
-
version:
|
111
|
+
version: 2.5.0
|
109
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
113
|
requirements:
|
111
114
|
- - ">="
|
112
115
|
- !ruby/object:Gem::Version
|
113
116
|
version: '0'
|
114
117
|
requirements: []
|
115
|
-
|
116
|
-
rubygems_version: 2.2.2
|
118
|
+
rubygems_version: 3.0.3
|
117
119
|
signing_key:
|
118
120
|
specification_version: 4
|
119
121
|
summary: ABA File Generator
|
120
122
|
test_files:
|
121
123
|
- spec/lib/aba/batch_spec.rb
|
124
|
+
- spec/lib/aba/return_spec.rb
|
122
125
|
- spec/lib/aba/transaction_spec.rb
|
123
126
|
- spec/lib/aba/validations_spec.rb
|
124
127
|
- spec/lib/aba_spec.rb
|