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 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