aba 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f11f3830479ca1fad3b854bb9459f99ce7dc8f5a
4
- data.tar.gz: f793d6648ffc17e7589b2c5db57b26f548c5800e
2
+ SHA256:
3
+ metadata.gz: f7d2996812bbfd9d6386cef252e680024545ad59b01eec0d6645d8cf75dafe6a
4
+ data.tar.gz: 584aad9a1c2b922680da873f1a95922dfa4864c5e54ac979d6ed6f5eb01e3094
5
5
  SHA512:
6
- metadata.gz: b350430aa9ee2c21cfa6d239c6871fcb3626f724dbd67d5cc5d58dac4d627c16b1e2873d1d4c4e9e80e0ca11acec6a5dfede5bae8b8184fcd8ab182ced99e7d9
7
- data.tar.gz: 356d63f3de331b90a69fc8d586690eb793fa606c8544f4bfc481a8a055ee96811c98a76158617db3e773f13a126eab2a0b53f62d5ac0ddcf0985e1f09ce8bec3
6
+ metadata.gz: 4be17e99ad4fedbb404bb2305e0a310afafc96c0f2b39f57f49d76b198e7018a7fc9997b35441d2209bce37986487d683fcfd5f20d049acea8581804669ecc8b
7
+ data.tar.gz: b09e75f48ce6ddab89dc0fc82f1d9be3a87f573db08591d65158203b2b1a4d1ae6c3ec6cbf34437d1c4d15842e4e93f07f75977bbf5ac063338fbd2dc519a177
data/.gitignore CHANGED
@@ -20,3 +20,4 @@ tmp
20
20
  *.o
21
21
  *.a
22
22
  mkmf.log
23
+ .ruby-version
@@ -1,7 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
4
- - 2.0.0
5
- - 2.1.7
6
- - 2.2.3
3
+ - 2.5.8
4
+ - 2.6.6
5
+ - 2.7.1
7
6
  script: bundle exec rspec spec
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
  ```
@@ -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", "~> 1.6"
22
- spec.add_development_dependency "rake", "~> 10.4"
23
- spec.add_development_dependency "pry", "~> 0.10"
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 = '>= 1.9.2'
26
+ spec.required_ruby_version = '>= 2.5.0'
27
27
  end
data/lib/aba.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require "aba/version"
2
2
  require "aba/validations"
3
+ require "aba/entry"
3
4
  require "aba/batch"
5
+ require "aba/return"
4
6
  require "aba/transaction"
5
7
 
6
8
  class Aba
@@ -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, :transactions
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
- @transaction_index = 0
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 transactions present - add one using `add_transaction`' if @transactions.empty?
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 += @transactions.map{ |t| t[1].to_s }.join("\r\n")
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
- if attrs.instance_of?(Aba::Transaction)
65
- transaction = attrs
66
- else
67
- transaction = Aba::Transaction.new(attrs)
68
- end
69
- @transactions[@transaction_index] = transaction
70
- @transaction_index += 1
71
- transaction
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
- !has_transaction_errors?
75
+ !transactions.map { |t| t.valid? }.include?(false)
76
76
  end
77
77
 
78
78
  def valid?
79
- !has_errors? && transactions_valid?
79
+ !has_errors? && !has_entry_errors?
80
80
  end
81
81
 
82
82
  def errors
83
83
  # Run validations
84
84
  has_errors?
85
- has_transaction_errors?
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
- transaction_error_collection = @transactions.each_with_index.map{ |(k, t), i| [k, t.error_collection] }.reject{ |e| e[1].nil? || e[1].empty? }.to_h
91
- all_errors[:transactions] = transaction_error_collection unless transaction_error_collection.empty?
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 has_transaction_errors?
99
- @transactions.map{ |t| t[1].valid? }.include?(false)
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
- @transactions.each do |t|
167
- net_total_amount += t[1].amount.to_i
168
- credit_total_amount += t[1].amount.to_i if t[1].amount.to_i > 0
169
- debit_total_amount += t[1].amount.to_i if t[1].amount.to_i < 0
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 += @transactions.size.to_s.rjust(6, "0")
216
+ output += entries.size.to_s.rjust(6, "0")
211
217
 
212
218
  # Reserved
213
219
  # Max: 40
@@ -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
@@ -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
@@ -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
- validates_integer :amount
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
@@ -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)
@@ -1,3 +1,3 @@
1
1
  class Aba
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -3,19 +3,33 @@
3
3
  require "spec_helper"
4
4
 
5
5
  describe Aba::Batch do
6
- let(:aba) { Aba::Batch.new(financial_institution: "WPC", user_name: "John Doe",
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(:transaction_values) { [30, -20] }
8
+ let(:transaction_amounts) { [[53, 30], [13, -20]] }
9
9
  let(:transactions) do
10
- transaction_values.map do |amount|
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: 53,
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
- subject { aba }
18
- before { transactions.each { |trx| subject.add_transaction(trx) } }
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(subject.to_s).to include("0 01WPC John Doe 466364Payroll 190615 \r\n")
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 { subject.bsb = "123-345" }
45
+ before { batch.bsb = "123-345" }
32
46
  it "should return a string containing the descriptive record with the bsb" do
33
- expect(subject.to_s).to include("0123-345 01WPC John Doe 466364Payroll 190615 \r\n")
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 transactions records" do
42
- expect(subject.to_s).to include("1342-342 3244654 530000000030John Doe R435564 453-543 45656733Remitter 00000000\r\n")
43
- expect(subject.to_s).to include("1342-342 3244654 530000000020John Doe R435564 453-543 45656733Remitter 00000000\r\n")
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 wihere the net total is not zero" do
51
- expect(subject.to_s).to include("7999-999 000000001000000000300000000020 000002 ")
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(:transaction_values) { [30, 30, -60] }
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(subject.to_s).to include("7999-999 000000000000000000600000000060 000003 ")
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.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: 2015-09-24 00:00:00.000000000 Z
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: '1.6'
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: '1.6'
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: '10.4'
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: '10.4'
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.10'
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.10'
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: 1.9.2
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
- rubyforge_project:
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