japan_net_bank 0.0.1
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 +7 -0
- data/.gitignore +17 -0
- data/.rspec +2 -0
- data/.travis.yml +3 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +66 -0
- data/Rakefile +6 -0
- data/japan_net_bank.gemspec +25 -0
- data/lib/japan_net_bank/transfer/csv.rb +13 -0
- data/lib/japan_net_bank/transfer/row.rb +68 -0
- data/lib/japan_net_bank/transfer.rb +47 -0
- data/lib/japan_net_bank/version.rb +3 -0
- data/lib/japan_net_bank.rb +6 -0
- data/spec/japan_net_bank/transfer/row_spec.rb +172 -0
- data/spec/japan_net_bank/transfer_spec.rb +90 -0
- data/spec/japan_net_bank_spec.rb +24 -0
- data/spec/spec_helper.rb +2 -0
- data/wercker.yml +31 -0
- metadata +122 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1a416ed16afa2f139aec3afa314d9a241d32f148
|
4
|
+
data.tar.gz: ec6c62a541531685fc6eb2a5347f664875b321b5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a81795051da0419c74290dc6951f7b2771f42e659c46f9020feb1e337a87d08bacf501a48673dc70ee9094e99e2fcbebac73e0ecff3f49bf3e5825ff8fb804bd
|
7
|
+
data.tar.gz: f4968ad701cf94a71d78a7d6331a4b5e38c5be9e49e61994ceb7698475638135ce9c5d31c432e9b0cf68e648b8c4cb570c4a17b06ac5a09d3021ef4c69fa09ba
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 INOUE Takuya
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
# JapanNetBank
|
2
|
+
|
3
|
+
ジャパンネット銀行の振込用 CSV を生成処理をサポートするライブラリです。
|
4
|
+
|
5
|
+
(サンプル CSV)
|
6
|
+
|
7
|
+
```csv
|
8
|
+
1,33,1,1,1111111,カ)ニホンシヨウジ,1000,ジヤパネタロウ
|
9
|
+
1,33,1,1,2222222,カ)ヤマモトシヨウテン,1000,ジヤパネタロウ
|
10
|
+
1,33,1,1,3333333,ニホンコウギヨウ(カ,1000,ジヤパネタロウ
|
11
|
+
1,33,1,1,4444444,ササキシヨウカイ(カ,1000,ジヤパネタロウ
|
12
|
+
1,33,1,1,5555555,カトウハナコ,1000,ジヤパネタロウ
|
13
|
+
1,33,1,1,6666666,サトウタロウ,1000,ジヤパネタロウ
|
14
|
+
1,33,1,1,7777777,ザイ)マルマルキヨウカイ,1000,ジヤパネタロウ
|
15
|
+
1,33,1,1,8888888,イ-.マネ-(カ,1000,ジヤパネタロウ
|
16
|
+
1,33,1,1,9999999,イケダ(カ)ニホンジムシヨ,1000,ジヤパネタロウ
|
17
|
+
1,33,1,1,1234567,ミタブングテン(カ,1000,ジヤパネタロウ
|
18
|
+
2,,,,,10,10000,
|
19
|
+
```
|
20
|
+
|
21
|
+
振込用 CSV の詳細については下記を参照してください。
|
22
|
+
|
23
|
+
* [操作説明|WEB総振|BA-PLUSオプションサービス|BA-PLUS|ビジネスでのご利用|ジャパンネット銀行](http://www.japannetbank.co.jp/business/baplus/service/web_all/manual.html)
|
24
|
+
* [csv_explain.pdf](http://www.japannetbank.co.jp/service/payment/web_all/csv_explain.pdf)
|
25
|
+
|
26
|
+
## Installation
|
27
|
+
|
28
|
+
Add this line to your application's Gemfile:
|
29
|
+
|
30
|
+
gem 'japan_net_bank'
|
31
|
+
|
32
|
+
And then execute:
|
33
|
+
|
34
|
+
$ bundle
|
35
|
+
|
36
|
+
Or install it yourself as:
|
37
|
+
|
38
|
+
$ gem install japan_net_bank
|
39
|
+
|
40
|
+
## Usage
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
transfer_data = [
|
44
|
+
{
|
45
|
+
bank_code: '0123',
|
46
|
+
branch_code: '012',
|
47
|
+
account_type: 'ordinary', # ordinary / checking / savings
|
48
|
+
number: '0123456',
|
49
|
+
name: 'サトウキテコ',
|
50
|
+
amount: 1600,
|
51
|
+
},
|
52
|
+
{
|
53
|
+
bank_code: '0999',
|
54
|
+
branch_code: '099',
|
55
|
+
account_type: 'ordinary',
|
56
|
+
number: '0999999',
|
57
|
+
name: 'サトウハナコ',
|
58
|
+
amount: 3200,
|
59
|
+
}
|
60
|
+
]
|
61
|
+
|
62
|
+
csv_string = JapanNetBank::Transfer.new(transfer_data).to_csv
|
63
|
+
# or csv_string = JNB::Transfer.new(transfer_data).to_csv
|
64
|
+
|
65
|
+
puts csv_string #=> "1,0123,012,1,0123456,サトウキテコ,1600\r\n1,0999,099,1,0999999,サトウハナコ,3200\r\n2,,,,,2,4800\r\n"
|
66
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'japan_net_bank/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "japan_net_bank"
|
8
|
+
spec.version = JapanNetBank::VERSION
|
9
|
+
spec.authors = ["INOUE Takuya"]
|
10
|
+
spec.email = ["inouetakuya5@gmail.com"]
|
11
|
+
spec.summary = %q{A toolkit for generating Japan Net Bank CSV to transfer.}
|
12
|
+
spec.description = %q{The best way to generate Japan Net Bank CSV to transfer.}
|
13
|
+
spec.homepage = "https://github.com/pepabo/japan_net_bank"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_runtime_dependency "activemodel"
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
23
|
+
spec.add_development_dependency "rake"
|
24
|
+
spec.add_development_dependency "rspec"
|
25
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'nkf'
|
2
|
+
require 'active_model'
|
3
|
+
|
4
|
+
module JapanNetBank
|
5
|
+
class Transfer
|
6
|
+
class Row
|
7
|
+
include ActiveModel::Validations
|
8
|
+
|
9
|
+
attr_accessor :record_type, :bank_code, :branch_code, :account_type, :number, :name, :amount
|
10
|
+
|
11
|
+
RECORD_TYPE_DATA = '1'
|
12
|
+
RECORD_TYPE_TRAILER = '2'
|
13
|
+
|
14
|
+
validates :bank_code, format: { with: /\A\d{4}\z/ }
|
15
|
+
validates :branch_code, format: { with: /\A\d{3}\z/ }
|
16
|
+
validates :account_type, inclusion: { in: %w(ordinary checking savings) }
|
17
|
+
validates :number, format: { with: /\A\d{7}\z/ }
|
18
|
+
validates :name, presence: true
|
19
|
+
|
20
|
+
validates :amount,
|
21
|
+
numericality: {
|
22
|
+
only_integer: true,
|
23
|
+
greater_than_or_equal_to: 1
|
24
|
+
}
|
25
|
+
|
26
|
+
def initialize(record_type: RECORD_TYPE_DATA, bank_code:, branch_code:, account_type:, number:, name:, amount:)
|
27
|
+
@record_type = record_type
|
28
|
+
@bank_code = bank_code
|
29
|
+
@branch_code = branch_code
|
30
|
+
@account_type = account_type
|
31
|
+
@number = number
|
32
|
+
@name = name
|
33
|
+
@amount = amount
|
34
|
+
|
35
|
+
raise ArgumentError, errors.full_messages unless valid?
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_a
|
39
|
+
[
|
40
|
+
@record_type,
|
41
|
+
@bank_code,
|
42
|
+
@branch_code,
|
43
|
+
account_type_code,
|
44
|
+
@number,
|
45
|
+
convert_to_hankaku_katakana(@name).encode('Shift_JIS'),
|
46
|
+
@amount.to_s,
|
47
|
+
]
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def convert_to_hankaku_katakana(string)
|
53
|
+
NKF.nkf('-w -Z4', string)
|
54
|
+
end
|
55
|
+
|
56
|
+
def account_type_code
|
57
|
+
case @account_type
|
58
|
+
when 'ordinary'
|
59
|
+
'1'
|
60
|
+
when 'checking'
|
61
|
+
'2'
|
62
|
+
when 'savings'
|
63
|
+
'4'
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'japan_net_bank/transfer/row'
|
2
|
+
require 'japan_net_bank/transfer/csv'
|
3
|
+
|
4
|
+
module JapanNetBank
|
5
|
+
class Transfer
|
6
|
+
attr_reader :rows_count, :total_amount, :rows
|
7
|
+
|
8
|
+
def initialize(rows)
|
9
|
+
@rows = []
|
10
|
+
@rows_count = 0
|
11
|
+
@total_amount = 0
|
12
|
+
|
13
|
+
rows.each do |row|
|
14
|
+
append_row(row)
|
15
|
+
end
|
16
|
+
|
17
|
+
add_trailer_row
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_csv
|
21
|
+
csv_string = JapanNetBank::Transfer::CSV.generate do |csv|
|
22
|
+
@rows.each do |row|
|
23
|
+
csv << row
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
csv_string
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def append_row(row)
|
33
|
+
@rows_count += 1
|
34
|
+
@total_amount += row[:amount].to_i
|
35
|
+
@rows << JapanNetBank::Transfer::Row.new(row).to_a
|
36
|
+
end
|
37
|
+
|
38
|
+
def add_trailer_row
|
39
|
+
return if @rows_count.zero?
|
40
|
+
@rows << trailer_row
|
41
|
+
end
|
42
|
+
|
43
|
+
def trailer_row
|
44
|
+
[Row::RECORD_TYPE_TRAILER, nil, nil, nil, nil, @rows_count, @total_amount]
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,172 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'japan_net_bank/transfer/row'
|
3
|
+
|
4
|
+
describe JapanNetBank::Transfer::Row do
|
5
|
+
let(:row_hash) {
|
6
|
+
{
|
7
|
+
bank_code: '0123',
|
8
|
+
branch_code: '012',
|
9
|
+
account_type: 'ordinary',
|
10
|
+
number: '0123456',
|
11
|
+
name: 'サトウキテコ',
|
12
|
+
amount: 1600,
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
let(:row) { JapanNetBank::Transfer::Row.new(row_hash) }
|
17
|
+
|
18
|
+
describe 'attributes' do
|
19
|
+
describe 'bank_code' do
|
20
|
+
context '4桁の数字のとき' do
|
21
|
+
it 'エラーが発生しない' do
|
22
|
+
row.bank_code = '0123'
|
23
|
+
expect(row).to be_valid
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context '3桁の数字のとき' do
|
28
|
+
it 'エラーが発生する' do
|
29
|
+
row.bank_code = '012'
|
30
|
+
expect(row).not_to be_valid
|
31
|
+
expect(row.errors[:bank_code]).to be_present
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context '4桁のアルファベットのとき' do
|
36
|
+
it 'エラーが発生する' do
|
37
|
+
row.bank_code = 'abcd'
|
38
|
+
expect(row).not_to be_valid
|
39
|
+
expect(row.errors[:bank_code]).to be_present
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe 'branch_code' do
|
45
|
+
context '3桁の数字のとき' do
|
46
|
+
it 'エラーが発生しない' do
|
47
|
+
row.branch_code = '012'
|
48
|
+
expect(row).to be_valid
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
context '2桁の数字のとき' do
|
53
|
+
it 'エラーが発生する' do
|
54
|
+
row.branch_code = '01'
|
55
|
+
expect(row).not_to be_valid
|
56
|
+
expect(row.errors[:branch_code]).to be_present
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context '3桁のアルファベットのとき' do
|
61
|
+
it 'エラーが発生する' do
|
62
|
+
row.branch_code = 'abc'
|
63
|
+
expect(row).not_to be_valid
|
64
|
+
expect(row.errors[:branch_code]).to be_present
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe 'account_type' do
|
70
|
+
context 'ordinary, checking, savings のいずれかのとき' do
|
71
|
+
it 'エラーが発生しない' do
|
72
|
+
%w(ordinary checking savings).each do |type|
|
73
|
+
row.account_type = type
|
74
|
+
expect(row).to be_valid
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
context 'ordinary, checking, savings の以外のとき' do
|
80
|
+
it 'エラーが発生する' do
|
81
|
+
row.account_type = 'invalid_account_type'
|
82
|
+
expect(row).not_to be_valid
|
83
|
+
expect(row.errors[:account_type]).to be_present
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe 'number' do
|
89
|
+
context '7桁の数字のとき' do
|
90
|
+
it 'エラーが発生しない' do
|
91
|
+
row.number = '0123456'
|
92
|
+
expect(row).to be_valid
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
context '6桁の数字のとき' do
|
97
|
+
it 'エラーが発生する' do
|
98
|
+
row.number = '012345'
|
99
|
+
expect(row).not_to be_valid
|
100
|
+
expect(row.errors[:number]).to be_present
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
context '7桁のアルファベットのとき' do
|
105
|
+
it 'エラーが発生する' do
|
106
|
+
row.number = 'abcdefg'
|
107
|
+
expect(row).not_to be_valid
|
108
|
+
expect(row.errors[:number]).to be_present
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe 'name' do
|
114
|
+
context '存在するとき' do
|
115
|
+
it 'エラーが発生しない' do
|
116
|
+
row.name = 'サトウキテコ'
|
117
|
+
expect(row).to be_valid
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
context '空文字列のとき' do
|
122
|
+
it 'エラーが発生する' do
|
123
|
+
row.name = ''
|
124
|
+
expect(row).not_to be_valid
|
125
|
+
expect(row.errors[:name]).to be_present
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
describe 'amount' do
|
131
|
+
context '1以上の整数のとき' do
|
132
|
+
it 'エラーが発生しない' do
|
133
|
+
row.amount = 1
|
134
|
+
expect(row).to be_valid
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
context '0 とき' do
|
139
|
+
it 'エラーが発生する' do
|
140
|
+
row.amount = 0
|
141
|
+
expect(row).not_to be_valid
|
142
|
+
expect(row.errors[:amount]).to be_present
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
context '小数とき' do
|
147
|
+
it 'エラーが発生する' do
|
148
|
+
row.amount = 1.5
|
149
|
+
expect(row).not_to be_valid
|
150
|
+
expect(row.errors[:amount]).to be_present
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
describe '#to_a' do
|
157
|
+
it 'Row の内容が配列で返ってくる' do
|
158
|
+
row_array = [
|
159
|
+
JapanNetBank::Transfer::Row::RECORD_TYPE_DATA,
|
160
|
+
'0123', '012', '1', '0123456', 'サトウキテコ'.encode('Shift_JIS'), '1600'
|
161
|
+
]
|
162
|
+
|
163
|
+
expect(row.to_a).to eq row_array
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
describe '#convert_to_hankaku_katakana' do
|
168
|
+
it '半角カタカナに変換する' do
|
169
|
+
expect(row.send(:convert_to_hankaku_katakana, 'サトウキテコ')).to eq 'サトウキテコ'
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'japan_net_bank/transfer'
|
3
|
+
|
4
|
+
describe JapanNetBank::Transfer do
|
5
|
+
let(:row_hash1) {
|
6
|
+
{
|
7
|
+
bank_code: '0123',
|
8
|
+
branch_code: '012',
|
9
|
+
account_type: 'ordinary',
|
10
|
+
number: '0123456',
|
11
|
+
name: 'サトウキテコ',
|
12
|
+
amount: 1600,
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
let(:row_hash2) {
|
17
|
+
{
|
18
|
+
bank_code: '0123',
|
19
|
+
branch_code: '012',
|
20
|
+
account_type: 'ordinary',
|
21
|
+
number: '0123456',
|
22
|
+
name: 'サトウハナコ',
|
23
|
+
amount: 3200,
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
let(:rows) { [row_hash1, row_hash2] }
|
28
|
+
let(:transfer) { JapanNetBank::Transfer.new(rows) }
|
29
|
+
|
30
|
+
describe '#initialize' do
|
31
|
+
context '振込データが正しいとき' do
|
32
|
+
it 'トレーラー行が追加されたデータを生成できる' do
|
33
|
+
row1 = JapanNetBank::Transfer::Row.new(row_hash1).to_a
|
34
|
+
row2 = JapanNetBank::Transfer::Row.new(row_hash2).to_a
|
35
|
+
|
36
|
+
trailer_row = [
|
37
|
+
JapanNetBank::Transfer::Row::RECORD_TYPE_TRAILER,
|
38
|
+
nil, nil, nil, nil, 2, 4800
|
39
|
+
]
|
40
|
+
|
41
|
+
expect(transfer.rows).to eq [row1, row2, trailer_row]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context '振込データのフォーマットに誤りがあるとき' do
|
46
|
+
let(:invalid_row_hash) {
|
47
|
+
{
|
48
|
+
bank_code: '012',
|
49
|
+
branch_code: '01',
|
50
|
+
account_type: 'invalid',
|
51
|
+
number: '012345',
|
52
|
+
# name: を削除している
|
53
|
+
amount: 1.5,
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
it 'ArgumentError が発生する' do
|
58
|
+
expect {
|
59
|
+
JapanNetBank::Transfer.new([invalid_row_hash])
|
60
|
+
}.to raise_error(ArgumentError)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe '#rows_count' do
|
66
|
+
it 'レコード数を取得できる' do
|
67
|
+
expect(transfer.rows_count).to eq 2
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe '#total_amount' do
|
72
|
+
it '振込金額の合計を取得できる' do
|
73
|
+
expect(transfer.total_amount).to eq 4800
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe '#to_csv' do
|
78
|
+
it 'CSV 文字列を取得できる' do
|
79
|
+
csv_row1 = JapanNetBank::Transfer::Row.new(row_hash1).to_a.join(',')
|
80
|
+
csv_row2 = JapanNetBank::Transfer::Row.new(row_hash2).to_a.join(',')
|
81
|
+
|
82
|
+
csv_trailer_row = [
|
83
|
+
JapanNetBank::Transfer::Row::RECORD_TYPE_TRAILER,
|
84
|
+
nil, nil, nil, nil, 2, 4800
|
85
|
+
].join(',')
|
86
|
+
|
87
|
+
expect(transfer.to_csv).to eq csv_row1 + "\r\n" + csv_row2 + "\r\n" + csv_trailer_row + "\r\n"
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe JapanNetBank do
|
4
|
+
it 'should have a version number' do
|
5
|
+
expect(JapanNetBank::VERSION).not_to eq be_nil
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'JNB でもアクセスできる' do
|
9
|
+
rows = [
|
10
|
+
{
|
11
|
+
bank_code: '0123',
|
12
|
+
branch_code: '012',
|
13
|
+
account_type: 'ordinary',
|
14
|
+
number: '0123456',
|
15
|
+
name: 'サトウキテコ',
|
16
|
+
amount: 1600,
|
17
|
+
}
|
18
|
+
]
|
19
|
+
|
20
|
+
expect {
|
21
|
+
JNB::Transfer.new(rows).to_csv
|
22
|
+
}.not_to raise_error
|
23
|
+
end
|
24
|
+
end
|
data/spec/spec_helper.rb
ADDED
data/wercker.yml
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
box: wercker/rvm
|
2
|
+
# Build definition
|
3
|
+
build:
|
4
|
+
# The steps that will be executed on build
|
5
|
+
# See the Ruby section on the wercker devcenter:
|
6
|
+
# http://devcenter.wercker.com/articles/languages/ruby.html
|
7
|
+
steps:
|
8
|
+
- rvm-use:
|
9
|
+
version: 2.1.1
|
10
|
+
|
11
|
+
# A step that executes `bundle install` command
|
12
|
+
- bundle-install
|
13
|
+
|
14
|
+
# A custom script step, name value is used in the UI
|
15
|
+
# and the code value contains the command that get executed
|
16
|
+
- script:
|
17
|
+
name: echo ruby information
|
18
|
+
code: |
|
19
|
+
echo "ruby version $(ruby --version) running"
|
20
|
+
echo "from location $(which ruby)"
|
21
|
+
echo -p "gem list: $(gem list)"
|
22
|
+
- script:
|
23
|
+
name: rake spec
|
24
|
+
code: bundle exec rake spec
|
25
|
+
|
26
|
+
after-steps:
|
27
|
+
- 2get/ikachan-notify@0.0.2:
|
28
|
+
url: http://irc.paperboy.co.jp:4979/privmsg
|
29
|
+
channel: "#kiteco"
|
30
|
+
passed-message: "%02[CI]%0f $WERCKER_APPLICATION_NAME: $WERCKER_BUILD_URL build of $WERCKER_GIT_BRANCH %02%0301,03PASSED%0f"
|
31
|
+
failed-message: "%02[CI]%0f $WERCKER_APPLICATION_NAME: $WERCKER_BUILD_URL build of $WERCKER_GIT_BRANCH %02%0301,04FAILED%0f"
|
metadata
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: japan_net_bank
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- INOUE Takuya
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-06-24 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activemodel
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.5'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: The best way to generate Japan Net Bank CSV to transfer.
|
70
|
+
email:
|
71
|
+
- inouetakuya5@gmail.com
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- ".gitignore"
|
77
|
+
- ".rspec"
|
78
|
+
- ".travis.yml"
|
79
|
+
- Gemfile
|
80
|
+
- LICENSE.txt
|
81
|
+
- README.md
|
82
|
+
- Rakefile
|
83
|
+
- japan_net_bank.gemspec
|
84
|
+
- lib/japan_net_bank.rb
|
85
|
+
- lib/japan_net_bank/transfer.rb
|
86
|
+
- lib/japan_net_bank/transfer/csv.rb
|
87
|
+
- lib/japan_net_bank/transfer/row.rb
|
88
|
+
- lib/japan_net_bank/version.rb
|
89
|
+
- spec/japan_net_bank/transfer/row_spec.rb
|
90
|
+
- spec/japan_net_bank/transfer_spec.rb
|
91
|
+
- spec/japan_net_bank_spec.rb
|
92
|
+
- spec/spec_helper.rb
|
93
|
+
- wercker.yml
|
94
|
+
homepage: https://github.com/pepabo/japan_net_bank
|
95
|
+
licenses:
|
96
|
+
- MIT
|
97
|
+
metadata: {}
|
98
|
+
post_install_message:
|
99
|
+
rdoc_options: []
|
100
|
+
require_paths:
|
101
|
+
- lib
|
102
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '0'
|
107
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
requirements: []
|
113
|
+
rubyforge_project:
|
114
|
+
rubygems_version: 2.2.2
|
115
|
+
signing_key:
|
116
|
+
specification_version: 4
|
117
|
+
summary: A toolkit for generating Japan Net Bank CSV to transfer.
|
118
|
+
test_files:
|
119
|
+
- spec/japan_net_bank/transfer/row_spec.rb
|
120
|
+
- spec/japan_net_bank/transfer_spec.rb
|
121
|
+
- spec/japan_net_bank_spec.rb
|
122
|
+
- spec/spec_helper.rb
|