guevara 0.0.1 → 0.1.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 +4 -4
- data/lib/guevara/batch.rb +3 -8
- data/lib/guevara/file_header.rb +2 -2
- data/lib/guevara/nacha.rb +2 -3
- data/lib/guevara/version.rb +1 -1
- data/test/helper.rb +29 -3
- data/test/test_batch_generation.rb +1 -7
- data/test/test_file_generation.rb +20 -36
- data/test/test_file_header.rb +1 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f58362850aca1d07cc5f908b70c4ce191bb980e3
|
4
|
+
data.tar.gz: 09f73431c56f52808db6216c6a91b44318916139
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9cf60939fd3f0ee3a4fd53945137011b434b1eb564f2af54967957d6639dac13ec4d916ff0cb0fd20ce90ed65c9217fb65b9d6c471d16988970f10a027e9327
|
7
|
+
data.tar.gz: 8762e796e63f6c1716b41ca44e4630fccee4fdff91e95e0a500e224549dfa285a4b18f31830a28e64fb9912c597fbfb124f1b37f00214376b5770783ea50074e
|
data/lib/guevara/batch.rb
CHANGED
@@ -9,8 +9,8 @@ module Guevara
|
|
9
9
|
|
10
10
|
attr_reader :transactions, :attributes
|
11
11
|
|
12
|
-
def initialize(
|
13
|
-
@transactions = transactions
|
12
|
+
def initialize(attributes)
|
13
|
+
@transactions = attributes.delete(:transactions)
|
14
14
|
@attributes = attributes
|
15
15
|
end
|
16
16
|
|
@@ -27,8 +27,7 @@ module Guevara
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def batch_header
|
30
|
-
|
31
|
-
BatchHeader.new header_attributes
|
30
|
+
BatchHeader.new attributes
|
32
31
|
end
|
33
32
|
|
34
33
|
def batch_control
|
@@ -56,10 +55,6 @@ module Guevara
|
|
56
55
|
modulo(1_000_000_000_000)
|
57
56
|
end
|
58
57
|
|
59
|
-
def effective_date
|
60
|
-
transactions.first[:effective_date]
|
61
|
-
end
|
62
|
-
|
63
58
|
def entry transaction, index
|
64
59
|
entry_attributes = transaction.merge(number: index + 1,
|
65
60
|
origin_id: attributes[:origin_id])
|
data/lib/guevara/file_header.rb
CHANGED
data/lib/guevara/nacha.rb
CHANGED
@@ -14,9 +14,8 @@ module Guevara
|
|
14
14
|
|
15
15
|
def batches= batches
|
16
16
|
@batches = batches.each_with_index.map do |batch_attributes, index|
|
17
|
-
transactions = batch_attributes.delete(:transactions)
|
18
17
|
batch_attributes[:number] = index + 1
|
19
|
-
Batch.new(
|
18
|
+
Batch.new(batch_attributes)
|
20
19
|
end
|
21
20
|
end
|
22
21
|
|
@@ -42,7 +41,7 @@ module Guevara
|
|
42
41
|
entry_count = total { |b| b.batch_control.attributes[:entry_count] }
|
43
42
|
block_count = entry_count + batches.size * 2 + 2
|
44
43
|
FileControl.new(
|
45
|
-
batch_count: batches.
|
44
|
+
batch_count: batches.count,
|
46
45
|
block_count: block_count,
|
47
46
|
entry_count: entry_count,
|
48
47
|
entry_hash: total { |b| b.batch_control.attributes[:entry_hash] },
|
data/lib/guevara/version.rb
CHANGED
data/test/helper.rb
CHANGED
@@ -6,10 +6,7 @@ def sample_transaction
|
|
6
6
|
id: 'FD00AFA8A0F7',
|
7
7
|
type: 'debit',
|
8
8
|
amount: 1600,
|
9
|
-
effective_date: '2014-09-21',
|
10
9
|
name: 'marge baker',
|
11
|
-
first_name: 'marge',
|
12
|
-
last_name: 'baker',
|
13
10
|
additional_info: 'wellsville|KS|66092|101 2nd st|',
|
14
11
|
telephone: '5858232966',
|
15
12
|
account_type: 'checking',
|
@@ -18,6 +15,35 @@ def sample_transaction
|
|
18
15
|
}
|
19
16
|
end
|
20
17
|
|
18
|
+
def lines(nacha)
|
19
|
+
nacha.to_s.lines.to_a
|
20
|
+
end
|
21
|
+
|
22
|
+
def sample_batch
|
23
|
+
{
|
24
|
+
service_class: '200',
|
25
|
+
company_name: 'rubylit',
|
26
|
+
company_id: 'Ruby123',
|
27
|
+
company_date: '2014-09-18',
|
28
|
+
origin_id: '12345678',
|
29
|
+
effective_date: '2014-09-21',
|
30
|
+
transactions: [ sample_transaction ]
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def sample_nacha
|
35
|
+
{
|
36
|
+
priority_code: 01,
|
37
|
+
destination_id: '12345678',
|
38
|
+
origin_id: '12345678',
|
39
|
+
created_at: '2014-11-28T13:30',
|
40
|
+
id: 'A',
|
41
|
+
destination_name: 'Rubylit',
|
42
|
+
origin_name: 'Zest',
|
43
|
+
batches: [ sample_batch ]
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
21
47
|
def debugger_equal value, other
|
22
48
|
flunk <<DEBUG unless value == other
|
23
49
|
Output is not as Expected
|
@@ -2,13 +2,7 @@ require_relative 'helper.rb'
|
|
2
2
|
require_relative '../lib/guevara/batch'
|
3
3
|
|
4
4
|
setup do
|
5
|
-
Guevara::Batch.new
|
6
|
-
service_class: '200',
|
7
|
-
company_name: 'rubylit',
|
8
|
-
company_id: 'Ruby123',
|
9
|
-
company_date: '2014-09-18',
|
10
|
-
origin_id: '12345678',
|
11
|
-
number: 1
|
5
|
+
Guevara::Batch.new sample_batch.merge(:number => 1)
|
12
6
|
end
|
13
7
|
|
14
8
|
test 'generates the batch' do |batch|
|
@@ -1,43 +1,9 @@
|
|
1
1
|
require_relative 'helper.rb'
|
2
2
|
require 'guevara'
|
3
3
|
|
4
|
-
test 'generates
|
5
|
-
|
6
|
-
transaction = {
|
7
|
-
id: 'FD00AFA8A0F7',
|
8
|
-
type: 'debit',
|
9
|
-
amount: 1600,
|
10
|
-
name: 'marge baker',
|
11
|
-
additional_info: 'wellsville|KS|66092|101 2nd st|',
|
12
|
-
telephone: '5858232966',
|
13
|
-
account_type: 'checking',
|
14
|
-
routing_number: 103100195,
|
15
|
-
account_number: '3ACCOUNT234'
|
16
|
-
}
|
17
|
-
|
18
|
-
batch = {
|
19
|
-
service_class: '200',
|
20
|
-
company_name: 'rubylit',
|
21
|
-
company_id: 'Ruby123',
|
22
|
-
company_date: '2014-09-18',
|
23
|
-
origin_id: '12345678',
|
24
|
-
effective_date: '2014-09-21',
|
25
|
-
transactions: [ transaction ]
|
26
|
-
}
|
27
|
-
|
28
|
-
nacha = Guevara::Nacha.new(
|
29
|
-
priority_code: 01,
|
30
|
-
destination_id: '12345678',
|
31
|
-
origin_id: '12345678',
|
32
|
-
created_at: '2014-11-28T13:30',
|
33
|
-
id: 'A',
|
34
|
-
destination_name: 'Rubylit',
|
35
|
-
origin_name: 'Zest',
|
36
|
-
batches: [ batch ]
|
37
|
-
)
|
38
|
-
|
4
|
+
test 'generates nacha sample file' do |batch|
|
39
5
|
expected = <<NACHA
|
40
|
-
|
6
|
+
101 012345678 0123456781411281330A094101 Rubylit Zest 0
|
41
7
|
5200rubylit Ruby123PPD 140918140921 1123456780000001
|
42
8
|
6271031001953ACCOUNT234 0000001600FD00AFA8A0F7 marge baker 1123456780000001
|
43
9
|
705wellsville|KS|66092|101 2nd st| 00010000001
|
@@ -45,8 +11,26 @@ test 'generates the batch' do |batch|
|
|
45
11
|
9000001000006000000020010310019000000001600000000000000
|
46
12
|
NACHA
|
47
13
|
|
14
|
+
nacha = Guevara::Nacha.new sample_nacha
|
15
|
+
|
48
16
|
nacha.to_s.lines.to_a.each_with_index do |line, index|
|
49
17
|
debugger_equal line, expected.lines.to_a[index]
|
50
18
|
end
|
19
|
+
end
|
20
|
+
|
21
|
+
test 'file control row gets the number of batches' do
|
22
|
+
nacha_attributes = sample_nacha.merge(:batches => [sample_batch, sample_batch])
|
23
|
+
nacha = Guevara::Nacha.new nacha_attributes
|
24
|
+
|
25
|
+
assert_equal lines(nacha).last[1,6].to_i, 2
|
26
|
+
end
|
27
|
+
|
28
|
+
test 'all the batches are added to the file' do
|
29
|
+
batches = 5.times.map do
|
30
|
+
sample_batch
|
31
|
+
end
|
32
|
+
nacha_attributes = sample_nacha.merge(:batches => batches)
|
51
33
|
|
34
|
+
nacha = Guevara::Nacha.new nacha_attributes
|
35
|
+
assert lines(nacha).size > 10
|
52
36
|
end
|
data/test/test_file_header.rb
CHANGED