japan_net_bank 0.0.3 → 0.0.4
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/README.md +57 -9
- data/japan_net_bank.gemspec +1 -0
- data/lib/japan_net_bank/transfer/csv.rb +5 -1
- data/lib/japan_net_bank/transfer/row.rb +3 -7
- data/lib/japan_net_bank/transfer.rb +106 -22
- data/lib/japan_net_bank/version.rb +1 -1
- data/spec/files/sample_jnb.csv +11 -0
- data/spec/japan_net_bank/transfer/{row_spec.rb → data_row_spec.rb} +0 -0
- data/spec/japan_net_bank/transfer_spec.rb +98 -36
- data/spec/japan_net_bank_spec.rb +10 -2
- data/spec/spec_helper.rb +1 -0
- metadata +20 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7d22972368c9139936b4526f77b0a443b73778c
|
4
|
+
data.tar.gz: 7b9c3e388f6c9895e749b9069003e713c75aea4c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21770efe16d422c55a16e49406c09db77be0f314cc2a735cc54a34dfe54dc8e3addd41804dbeffba19d202385d5b68fef001517ef539bac2b1c9171ccc9a596a
|
7
|
+
data.tar.gz: 95222b332853af3347b6f536252dff7c43366968ba5b1a765549e60ce48d1e661ddd5ae3086f56619e4e5fe08f13ac5530b29e61419bcf282f4ad379ab455c85
|
data/README.md
CHANGED
@@ -45,7 +45,7 @@ Or install it yourself as:
|
|
45
45
|
|
46
46
|
## Usage
|
47
47
|
|
48
|
-
###
|
48
|
+
### Generate CSV for transfer (1)
|
49
49
|
|
50
50
|
```ruby
|
51
51
|
transfer_data = [
|
@@ -58,26 +58,74 @@ transfer_data = [
|
|
58
58
|
amount: 1600,
|
59
59
|
},
|
60
60
|
{
|
61
|
-
bank_code: '
|
62
|
-
branch_code: '
|
61
|
+
bank_code: '0234',
|
62
|
+
branch_code: '023',
|
63
63
|
account_type: 'ordinary',
|
64
|
-
number: '
|
64
|
+
number: '0234567',
|
65
65
|
name: 'サトウハナコ',
|
66
66
|
amount: 3200,
|
67
67
|
}
|
68
68
|
]
|
69
69
|
|
70
|
-
csv_string = JapanNetBank::Transfer.
|
71
|
-
# or csv_string = JNB::Transfer.
|
70
|
+
csv_string = JapanNetBank::Transfer.from_hash_array(transfer_data).to_csv
|
71
|
+
# or csv_string = JNB::Transfer.from_hash_array(transfer_data).to_csv
|
72
72
|
|
73
|
-
puts csv_string #=> "1,0123,012,1,0123456,サトウキテコ,1600\r\n1,
|
73
|
+
puts csv_string #=> "1,0123,012,1,0123456,サトウキテコ,1600\r\n1,0234,023,1,0234567,サトウハナコ,3200\r\n2,,,,,2,4800\r\n"
|
74
74
|
```
|
75
75
|
|
76
|
-
###
|
76
|
+
### Generate CSV for transfer (2)
|
77
|
+
|
78
|
+
```ruby
|
79
|
+
row1 = JapanNetBank::Transfer::Row.new(
|
80
|
+
bank_code: '0123',
|
81
|
+
branch_code: '012',
|
82
|
+
account_type: 'ordinary', # ordinary / checking / savings
|
83
|
+
number: '0123456',
|
84
|
+
name: 'サトウキテコ',
|
85
|
+
amount: 1600,
|
86
|
+
)
|
87
|
+
|
88
|
+
row2 = JapanNetBank::Transfer::Row.new(
|
89
|
+
bank_code: '0234',
|
90
|
+
branch_code: '023',
|
91
|
+
account_type: 'ordinary',
|
92
|
+
number: '0234567',
|
93
|
+
name: 'サトウハナコ',
|
94
|
+
amount: 3200,
|
95
|
+
)
|
96
|
+
|
97
|
+
transfer = JapanNetBank::Transfer.generate do |t|
|
98
|
+
t << row1
|
99
|
+
t << row2
|
100
|
+
end
|
101
|
+
|
102
|
+
puts transfer.to_csv #=> "1,0123,012,1,0123456,サトウキテコ,1600\r\n1,0234,023,1,0234567,サトウハナコ,3200\r\n2,,,,,2,4800\r\n"
|
103
|
+
```
|
104
|
+
|
105
|
+
### Parse CSV for transfer
|
106
|
+
|
107
|
+
```ruby
|
108
|
+
puts csv_string #=> "1,0123,012,1,0123456,サトウキテコ,1600\r\n1,0234,023,1,0234567,サトウハナコ,3200\r\n2,,,,,2,4800\r\n"
|
109
|
+
|
110
|
+
transfer = JapanNetBank::Transfer.parse_csv(csv_string)
|
111
|
+
# or transfer = JNB::Transfer.parse_csv(csv_string)
|
112
|
+
|
113
|
+
transfer.each do |row|
|
114
|
+
puts row.record_type #=> "1"
|
115
|
+
puts row.bank_code #=> "0123"
|
116
|
+
puts row.branch_code #=> "012"
|
117
|
+
puts row.account_type #=> "ordinary" # ordinary / checking / savings
|
118
|
+
puts row.number #=> "0123456"
|
119
|
+
puts row.name #=> "サトウキテコ"
|
120
|
+
puts row.amount #=> 1600
|
121
|
+
end
|
122
|
+
```
|
123
|
+
|
124
|
+
### Transfer fee
|
77
125
|
|
78
126
|
```ruby
|
79
127
|
transfer_fee = JapanNetBank::Transfer.fee_for(bank_code: '0123', amount: 30_000)
|
80
|
-
# or JNB::Transfer.fee_for(bank_code: '0123', amount: 30_000)
|
128
|
+
# or transfer_fee = JNB::Transfer.fee_for(bank_code: '0123', amount: 30_000)
|
81
129
|
|
82
130
|
puts transfer_fee #=> 270
|
83
131
|
```
|
data/japan_net_bank.gemspec
CHANGED
@@ -10,18 +10,14 @@ module JapanNetBank
|
|
10
10
|
|
11
11
|
RECORD_TYPE_DATA = '1'
|
12
12
|
RECORD_TYPE_TRAILER = '2'
|
13
|
+
ACCOUNT_TYPES = { '1' => 'ordinary', '2' => 'checking', '4' => 'savings' }
|
13
14
|
|
14
15
|
validates :bank_code, format: { with: /\A\d{4}\z/ }
|
15
16
|
validates :branch_code, format: { with: /\A\d{3}\z/ }
|
16
17
|
validates :account_type, inclusion: { in: %w(ordinary checking savings) }
|
17
18
|
validates :number, format: { with: /\A\d{7}\z/ }
|
18
19
|
validates :name, presence: true
|
19
|
-
|
20
|
-
validates :amount,
|
21
|
-
numericality: {
|
22
|
-
only_integer: true,
|
23
|
-
greater_than_or_equal_to: 1
|
24
|
-
}
|
20
|
+
validates :amount, numericality: { only_integer: true, greater_than_or_equal_to: 1 }
|
25
21
|
|
26
22
|
def initialize(record_type: RECORD_TYPE_DATA, bank_code: nil, branch_code: nil, account_type: nil, number: nil, name: nil, amount: nil)
|
27
23
|
@record_type = record_type
|
@@ -30,7 +26,7 @@ module JapanNetBank
|
|
30
26
|
@account_type = account_type
|
31
27
|
@number = number
|
32
28
|
@name = name
|
33
|
-
@amount = amount
|
29
|
+
@amount = amount.to_i
|
34
30
|
|
35
31
|
raise ArgumentError, errors.full_messages unless valid?
|
36
32
|
end
|
@@ -1,63 +1,147 @@
|
|
1
1
|
require 'japan_net_bank/transfer/row'
|
2
2
|
require 'japan_net_bank/transfer/csv'
|
3
|
+
require 'nkf'
|
3
4
|
|
4
5
|
module JapanNetBank
|
5
6
|
class Transfer
|
6
|
-
|
7
|
+
include Enumerable
|
8
|
+
|
9
|
+
#
|
10
|
+
# == row_hash, row_array, row の違い
|
11
|
+
#
|
12
|
+
# row_hash = {
|
13
|
+
# bank_code: '0123',
|
14
|
+
# branch_code: '012',
|
15
|
+
# account_type: 'ordinary',
|
16
|
+
# number: '0123456',
|
17
|
+
# name: 'サトウキテコ',
|
18
|
+
# amount: 1600,
|
19
|
+
# }
|
20
|
+
#
|
21
|
+
# row_array: ['1', '0123', '012', '1', '0123456', 'サトウキテコ', '1600']
|
22
|
+
#
|
23
|
+
# row:
|
24
|
+
# JapanNetBank::Transfer::DataRow オブジェクト or
|
25
|
+
# JapanNetBank::Transfer::TrailerRow オブジェクト
|
26
|
+
#
|
7
27
|
|
8
28
|
FEE_TO_JAPAN_NET_BANK = 54
|
9
29
|
FEE_FOR_AMOUNT_UNDER_30_000 = 172
|
10
30
|
FEE_FOR_AMOUNT_AND_OVER_30_000 = 270
|
11
31
|
|
12
|
-
|
13
|
-
|
32
|
+
class << self
|
33
|
+
def from_hash_array(row_hashes)
|
34
|
+
transfer = self.new
|
35
|
+
transfer.append_row_hashes(row_hashes)
|
36
|
+
|
37
|
+
transfer
|
38
|
+
end
|
39
|
+
|
40
|
+
def generate
|
41
|
+
transfer = self.new
|
42
|
+
yield(transfer)
|
14
43
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
44
|
+
transfer
|
45
|
+
end
|
46
|
+
|
47
|
+
def parse_csv(csv_string)
|
48
|
+
transfer = self.new
|
49
|
+
row_arrays = JapanNetBank::Transfer::CSV.parse(encode_to_utf8(csv_string))
|
50
|
+
data_row_arrays = select_data_row_arrays(row_arrays)
|
51
|
+
|
52
|
+
transfer.append_row_arrays(data_row_arrays)
|
53
|
+
|
54
|
+
transfer
|
55
|
+
end
|
56
|
+
|
57
|
+
def fee_for(bank_code: nil, amount: nil)
|
58
|
+
raise ArgumentError if bank_code.nil? || amount.nil?
|
59
|
+
|
60
|
+
if bank_code == JapanNetBank::BANK_CODE
|
61
|
+
FEE_TO_JAPAN_NET_BANK
|
62
|
+
elsif amount < 30_000
|
63
|
+
FEE_FOR_AMOUNT_UNDER_30_000
|
64
|
+
elsif amount >= 30_000
|
65
|
+
FEE_FOR_AMOUNT_AND_OVER_30_000
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
private
|
70
|
+
|
71
|
+
def select_data_row_arrays(row_arrays)
|
72
|
+
row_arrays.select { |row_array| row_array[0] == JapanNetBank::Transfer::Row::RECORD_TYPE_DATA }
|
73
|
+
end
|
74
|
+
|
75
|
+
def encode_to_utf8(string)
|
76
|
+
# 単純に下記だと、"カ)" の部分が落ちてしまうため
|
77
|
+
# NKF.nkf('-w -X', string)
|
78
|
+
|
79
|
+
NKF.nkf('-w -X', string.encode('UTF-8', NKF.guess(string).to_s))
|
21
80
|
end
|
22
81
|
end
|
23
82
|
|
24
|
-
|
83
|
+
attr_reader :rows_count, :total_amount, :rows
|
84
|
+
|
85
|
+
def initialize
|
25
86
|
@rows = []
|
26
87
|
@rows_count = 0
|
27
88
|
@total_amount = 0
|
89
|
+
end
|
28
90
|
|
29
|
-
|
30
|
-
|
91
|
+
def append_row_hashes(row_hashes)
|
92
|
+
row_hashes.each do |row_hash|
|
93
|
+
append_row(JapanNetBank::Transfer::Row.new(row_hash))
|
31
94
|
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def append_row_arrays(row_arrays)
|
98
|
+
row_arrays.each do |row_array|
|
99
|
+
append_row(JapanNetBank::Transfer::Row.new(row_array_to_hash(row_array)))
|
100
|
+
end
|
101
|
+
end
|
32
102
|
|
33
|
-
|
103
|
+
def <<(row)
|
104
|
+
append_row(row)
|
34
105
|
end
|
35
106
|
|
36
107
|
def to_csv
|
37
|
-
|
108
|
+
JapanNetBank::Transfer::CSV.generate do |csv|
|
38
109
|
@rows.each do |row|
|
39
|
-
csv << row
|
110
|
+
csv << row.to_a
|
40
111
|
end
|
112
|
+
|
113
|
+
csv << trailer_row if @rows_count > 0
|
41
114
|
end
|
115
|
+
end
|
42
116
|
|
43
|
-
|
117
|
+
def each
|
118
|
+
@rows.each do |row|
|
119
|
+
yield row
|
120
|
+
end
|
44
121
|
end
|
45
122
|
|
46
123
|
private
|
47
124
|
|
48
125
|
def append_row(row)
|
49
|
-
@rows <<
|
126
|
+
@rows << row
|
50
127
|
@rows_count += 1
|
51
|
-
@total_amount += row
|
128
|
+
@total_amount += row.amount
|
52
129
|
end
|
53
130
|
|
54
|
-
def
|
55
|
-
|
56
|
-
|
131
|
+
def row_array_to_hash(row_array)
|
132
|
+
{
|
133
|
+
record_type: row_array[0],
|
134
|
+
bank_code: sprintf('%04d', row_array[1]),
|
135
|
+
branch_code: sprintf('%03d', row_array[2]),
|
136
|
+
account_type: JapanNetBank::Transfer::Row::ACCOUNT_TYPES[row_array[3]],
|
137
|
+
number: sprintf('%07d', row_array[4]),
|
138
|
+
name: row_array[5],
|
139
|
+
amount: row_array[6],
|
140
|
+
}
|
57
141
|
end
|
58
142
|
|
59
143
|
def trailer_row
|
60
|
-
[Row::RECORD_TYPE_TRAILER, nil, nil, nil, nil, @rows_count, @total_amount]
|
144
|
+
[JapanNetBank::Transfer::Row::RECORD_TYPE_TRAILER, nil, nil, nil, nil, @rows_count, @total_amount]
|
61
145
|
end
|
62
146
|
end
|
63
147
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
1,33,1,1,1111111,�)��ݼֳ��,1000,�������۳
|
2
|
+
1,33,1,1,2222222,�)���ļֳ��,1000,�������۳
|
3
|
+
1,33,1,1,3333333,��ݺ���ֳ(�,1000,�������۳
|
4
|
+
1,33,1,1,4444444,����ֳ��(�,1000,�������۳
|
5
|
+
1,33,1,1,5555555,�ij�ź,1000,�������۳
|
6
|
+
1,33,1,1,6666666,�ij�۳,1000,�������۳
|
7
|
+
1,33,1,1,7777777,�)���ٷֳ��,1000,�������۳
|
8
|
+
1,33,1,1,8888888,�-.��-�i�,1000,�������۳
|
9
|
+
1,33,1,1,9999999,����(�)��ݼ�Ѽ�,1000,�������۳
|
10
|
+
1,33,1,1,1234567,����ݸ���(�,1000,�������۳
|
11
|
+
2,,,,,10,10000,
|
File without changes
|
@@ -24,8 +24,84 @@ describe JapanNetBank::Transfer do
|
|
24
24
|
}
|
25
25
|
}
|
26
26
|
|
27
|
-
let(:
|
28
|
-
let(:transfer) { JapanNetBank::Transfer.
|
27
|
+
let(:row_hashes) { [row_hash1, row_hash2] }
|
28
|
+
let(:transfer) { JapanNetBank::Transfer.from_hash_array(row_hashes) }
|
29
|
+
let(:transfer_data) { File.read('spec/files/sample_jnb.csv') } # Shift_JIS
|
30
|
+
|
31
|
+
describe 'self.from_hash_array' do
|
32
|
+
context '正しい振込データが渡されたとき' do
|
33
|
+
it 'データ行が追加されたデータを生成できる' do
|
34
|
+
data_row1 = transfer.rows.first
|
35
|
+
|
36
|
+
expect(data_row1.bank_code).to eq '0123'
|
37
|
+
expect(data_row1.branch_code).to eq '012'
|
38
|
+
expect(data_row1.account_type).to eq 'ordinary'
|
39
|
+
expect(data_row1.number).to eq '0123456'
|
40
|
+
expect(data_row1.name).to eq 'サトウキテコ'
|
41
|
+
expect(data_row1.amount).to eq 1600
|
42
|
+
|
43
|
+
expect(transfer.rows_count).to eq 2
|
44
|
+
expect(transfer.total_amount).to eq 4800
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context 'フォーマットの誤った振込データが渡されたとき' do
|
49
|
+
let(:invalid_row_hash) {
|
50
|
+
{
|
51
|
+
bank_code: '012',
|
52
|
+
branch_code: '01',
|
53
|
+
account_type: 'invalid',
|
54
|
+
number: '012345',
|
55
|
+
# name: を削除している
|
56
|
+
amount: 1.5,
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
it 'ArgumentError が発生する' do
|
61
|
+
expect {
|
62
|
+
JapanNetBank::Transfer.from_hash_array([invalid_row_hash])
|
63
|
+
}.to raise_error(ArgumentError)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe 'self.generate' do
|
69
|
+
let(:row1) { JapanNetBank::Transfer::Row.new(row_hash1) }
|
70
|
+
let(:row2) { JapanNetBank::Transfer::Row.new(row_hash2) }
|
71
|
+
|
72
|
+
it 'Transfer#rows に Row オブジェクトが追加される' do
|
73
|
+
transfer = JapanNetBank::Transfer.generate do |t|
|
74
|
+
t << row1
|
75
|
+
t << row2
|
76
|
+
end
|
77
|
+
|
78
|
+
data_row1 = transfer.rows.first
|
79
|
+
|
80
|
+
expect(data_row1.bank_code).to eq '0123'
|
81
|
+
expect(data_row1.branch_code).to eq '012'
|
82
|
+
expect(data_row1.account_type).to eq 'ordinary'
|
83
|
+
expect(data_row1.number).to eq '0123456'
|
84
|
+
expect(data_row1.name).to eq 'サトウキテコ'
|
85
|
+
expect(data_row1.amount).to eq 1600
|
86
|
+
|
87
|
+
expect(transfer.rows_count).to eq 2
|
88
|
+
expect(transfer.total_amount).to eq 4800
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe 'self.parse_csv' do
|
93
|
+
it 'CSV データを読み込むことができる' do
|
94
|
+
row1 = JapanNetBank::Transfer.parse_csv(transfer_data).rows.first
|
95
|
+
|
96
|
+
expect(row1.record_type).to eq '1'
|
97
|
+
expect(row1.bank_code).to eq '0033'
|
98
|
+
expect(row1.branch_code).to eq '001'
|
99
|
+
expect(row1.account_type).to eq 'ordinary'
|
100
|
+
expect(row1.number).to eq '1111111'
|
101
|
+
expect(row1.name).to eq 'カ)ニホンシヨウジ'
|
102
|
+
expect(row1.amount).to eq 1000
|
103
|
+
end
|
104
|
+
end
|
29
105
|
|
30
106
|
describe 'self.fee_for' do
|
31
107
|
context 'ジャパンネット銀行への振込のとき' do
|
@@ -52,37 +128,19 @@ describe JapanNetBank::Transfer do
|
|
52
128
|
end
|
53
129
|
end
|
54
130
|
|
55
|
-
describe '
|
56
|
-
context '
|
57
|
-
it '
|
58
|
-
|
59
|
-
row2 = JapanNetBank::Transfer::Row.new(row_hash2).to_a
|
60
|
-
|
61
|
-
trailer_row = [
|
62
|
-
JapanNetBank::Transfer::Row::RECORD_TYPE_TRAILER,
|
63
|
-
nil, nil, nil, nil, 2, 4800
|
64
|
-
]
|
65
|
-
|
66
|
-
expect(transfer.rows).to eq [row1, row2, trailer_row]
|
131
|
+
describe 'self.encode_to_utf8' do
|
132
|
+
context 'Shift_JIS の文字列を渡したとき' do
|
133
|
+
it 'UTF-8 の文字列を取得できる(全角カタカナ)' do
|
134
|
+
expect(JapanNetBank::Transfer.send(:encode_to_utf8, transfer_data)).to match 'カ\)ニホンシヨウジ'
|
67
135
|
end
|
68
136
|
end
|
69
137
|
|
70
|
-
context '
|
71
|
-
let(:
|
72
|
-
{
|
73
|
-
bank_code: '012',
|
74
|
-
branch_code: '01',
|
75
|
-
account_type: 'invalid',
|
76
|
-
number: '012345',
|
77
|
-
# name: を削除している
|
78
|
-
amount: 1.5,
|
79
|
-
}
|
80
|
-
}
|
138
|
+
context '既に UTF-8 に変換した文字列を渡したとき' do
|
139
|
+
let(:utf8_string) { transfer_data.encode('UTF-8', 'Shift_JIS') }
|
81
140
|
|
82
|
-
it '
|
83
|
-
expect
|
84
|
-
|
85
|
-
}.to raise_error(ArgumentError)
|
141
|
+
it 'UTF-8 の文字列を取得できる(全角カタカナ)' do
|
142
|
+
expect(utf8_string).to match /カ\)ニホンシヨウジ/
|
143
|
+
expect(JapanNetBank::Transfer.send(:encode_to_utf8, utf8_string)).to match 'カ\)ニホンシヨウジ'
|
86
144
|
end
|
87
145
|
end
|
88
146
|
end
|
@@ -101,15 +159,19 @@ describe JapanNetBank::Transfer do
|
|
101
159
|
|
102
160
|
describe '#to_csv' do
|
103
161
|
it 'CSV 文字列を取得できる' do
|
104
|
-
|
105
|
-
|
162
|
+
row_array1 = JapanNetBank::Transfer::Row.new(row_hash1).to_a.join(',')
|
163
|
+
row_array2 = JapanNetBank::Transfer::Row.new(row_hash2).to_a.join(',')
|
164
|
+
trailer_row_array = [JapanNetBank::Transfer::Row::RECORD_TYPE_TRAILER, nil, nil, nil, nil, 2, 4800].join(',')
|
106
165
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
].join(',')
|
166
|
+
expect(transfer.to_csv).to eq row_array1 + "\r\n" + row_array2 + "\r\n" + trailer_row_array + "\r\n"
|
167
|
+
end
|
168
|
+
end
|
111
169
|
|
112
|
-
|
170
|
+
describe '#each' do
|
171
|
+
it 'rows を走査できる' do
|
172
|
+
JapanNetBank::Transfer.parse_csv(transfer_data).each do |row|
|
173
|
+
expect(row.class).to eq JapanNetBank::Transfer::Row
|
174
|
+
end
|
113
175
|
end
|
114
176
|
end
|
115
177
|
end
|
data/spec/japan_net_bank_spec.rb
CHANGED
@@ -6,7 +6,7 @@ describe JapanNetBank do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
it 'JNB でもアクセスできる' do
|
9
|
-
|
9
|
+
row_hashes = [
|
10
10
|
{
|
11
11
|
bank_code: '0123',
|
12
12
|
branch_code: '012',
|
@@ -14,11 +14,19 @@ describe JapanNetBank do
|
|
14
14
|
number: '0123456',
|
15
15
|
name: 'サトウキテコ',
|
16
16
|
amount: 1600,
|
17
|
+
},
|
18
|
+
{
|
19
|
+
bank_code: '0123',
|
20
|
+
branch_code: '012',
|
21
|
+
account_type: 'ordinary',
|
22
|
+
number: '0999999',
|
23
|
+
name: 'サトウハナコ',
|
24
|
+
amount: 3200,
|
17
25
|
}
|
18
26
|
]
|
19
27
|
|
20
28
|
expect {
|
21
|
-
JNB::Transfer.
|
29
|
+
JNB::Transfer.from_hash_array(row_hashes).to_csv
|
22
30
|
}.not_to raise_error
|
23
31
|
end
|
24
32
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: japan_net_bank
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- INOUE Takuya
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: The best way to generate Japan Net Bank CSV to transfer.
|
70
84
|
email:
|
71
85
|
- inouetakuya5@gmail.com
|
@@ -86,7 +100,8 @@ files:
|
|
86
100
|
- lib/japan_net_bank/transfer/csv.rb
|
87
101
|
- lib/japan_net_bank/transfer/row.rb
|
88
102
|
- lib/japan_net_bank/version.rb
|
89
|
-
- spec/
|
103
|
+
- spec/files/sample_jnb.csv
|
104
|
+
- spec/japan_net_bank/transfer/data_row_spec.rb
|
90
105
|
- spec/japan_net_bank/transfer_spec.rb
|
91
106
|
- spec/japan_net_bank_spec.rb
|
92
107
|
- spec/spec_helper.rb
|
@@ -116,7 +131,8 @@ signing_key:
|
|
116
131
|
specification_version: 4
|
117
132
|
summary: A toolkit for generating Japan Net Bank CSV to transfer.
|
118
133
|
test_files:
|
119
|
-
- spec/
|
134
|
+
- spec/files/sample_jnb.csv
|
135
|
+
- spec/japan_net_bank/transfer/data_row_spec.rb
|
120
136
|
- spec/japan_net_bank/transfer_spec.rb
|
121
137
|
- spec/japan_net_bank_spec.rb
|
122
138
|
- spec/spec_helper.rb
|