japan_net_bank 0.1.0 → 0.2.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 +5 -5
- data/.github/workflows/testing.yml +18 -0
- data/japan_net_bank.gemspec +1 -1
- data/lib/japan_net_bank/transfer.rb +2 -2
- data/lib/japan_net_bank/transfer/csv.rb +3 -3
- data/lib/japan_net_bank/transfer/row.rb +10 -8
- data/lib/japan_net_bank/version.rb +1 -1
- data/spec/japan_net_bank/transfer_spec.rb +50 -2
- metadata +8 -10
- data/.travis.yml +0 -3
- data/wercker.yml +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d0770dc9e2afa8e4654c0c742dc05e38af018f53d0cd9af2bcee36bc7ba08932
|
4
|
+
data.tar.gz: d89409cf9243ff092e3326d54cfafebf3e75bb1b8e500104ad0f13aaa922d302
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 429a566832224066df5b8143e67448e4b04ab452db1234ef5d181424d13dbf457aadb7275ba62b30dc7f2b5aae0fcf14ff2734c87ef28ec1b65c951ffc88895d
|
7
|
+
data.tar.gz: ffa3b3f730940902c483eff3a5ab94f7e6241eb9357fc57620038e2827d8e762f7f54df8a265a3e73e337f7a61762af17a13765598048e92150e9d47c729865c
|
@@ -0,0 +1,18 @@
|
|
1
|
+
name: Testing
|
2
|
+
on:
|
3
|
+
- push
|
4
|
+
jobs:
|
5
|
+
rspec:
|
6
|
+
runs-on: ubuntu-latest
|
7
|
+
strategy:
|
8
|
+
matrix:
|
9
|
+
ruby: ['2.6', '2.7']
|
10
|
+
name: Rspec with Ruby ${{ matrix.ruby }}
|
11
|
+
steps:
|
12
|
+
- uses: actions/checkout@v2
|
13
|
+
- uses: actions/setup-ruby@v1
|
14
|
+
with:
|
15
|
+
ruby-version: ${{ matrix.ruby }}
|
16
|
+
- run: |
|
17
|
+
bundle install --path vendor/bundle --quiet --jobs 4 --retry 3
|
18
|
+
bundle exec rspec
|
data/japan_net_bank.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_runtime_dependency "activemodel"
|
22
|
-
spec.add_development_dependency "bundler"
|
22
|
+
spec.add_development_dependency "bundler"
|
23
23
|
spec.add_development_dependency "rake"
|
24
24
|
spec.add_development_dependency "rspec"
|
25
25
|
spec.add_development_dependency "pry"
|
@@ -104,10 +104,10 @@ module JapanNetBank
|
|
104
104
|
append_row(row)
|
105
105
|
end
|
106
106
|
|
107
|
-
def to_csv
|
107
|
+
def to_csv(opts = {})
|
108
108
|
JapanNetBank::Transfer::CSV.generate do |csv|
|
109
109
|
@rows.each do |row|
|
110
|
-
csv << row.to_a
|
110
|
+
csv << row.to_a(**opts)
|
111
111
|
end
|
112
112
|
|
113
113
|
csv << trailer_row if @rows_count > 0
|
@@ -4,9 +4,9 @@ module JapanNetBank
|
|
4
4
|
class Transfer
|
5
5
|
class CSV
|
6
6
|
def self.generate
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
::CSV.generate(row_sep: "\r\n", encoding: Encoding::Shift_JIS) do |csv|
|
8
|
+
yield(csv)
|
9
|
+
end
|
10
10
|
end
|
11
11
|
|
12
12
|
def self.parse(csv_string)
|
@@ -31,15 +31,17 @@ module JapanNetBank
|
|
31
31
|
raise ArgumentError, errors.full_messages unless valid?
|
32
32
|
end
|
33
33
|
|
34
|
-
def to_a
|
34
|
+
def to_a(name_length_limit: 48)
|
35
|
+
name = convert_to_hankaku_katakana(@name).slice(0, name_length_limit)
|
36
|
+
|
35
37
|
[
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
38
|
+
@record_type,
|
39
|
+
@bank_code,
|
40
|
+
@branch_code,
|
41
|
+
account_type_code,
|
42
|
+
@number,
|
43
|
+
name.encode('Shift_JIS'),
|
44
|
+
@amount.to_s,
|
43
45
|
]
|
44
46
|
end
|
45
47
|
|
@@ -158,12 +158,60 @@ describe JapanNetBank::Transfer do
|
|
158
158
|
end
|
159
159
|
|
160
160
|
describe '#to_csv' do
|
161
|
-
it 'CSV 文字列を取得できる' do
|
161
|
+
it 'Shift JIS の CSV 文字列を取得できる' do
|
162
162
|
row_array1 = JapanNetBank::Transfer::Row.new(row_hash1).to_a.join(',')
|
163
163
|
row_array2 = JapanNetBank::Transfer::Row.new(row_hash2).to_a.join(',')
|
164
164
|
trailer_row_array = [JapanNetBank::Transfer::Row::RECORD_TYPE_TRAILER, nil, nil, nil, nil, 2, 4800].join(',')
|
165
165
|
|
166
|
-
|
166
|
+
csv = transfer.to_csv
|
167
|
+
|
168
|
+
expect(csv).to eq row_array1 + "\r\n" + row_array2 + "\r\n" + trailer_row_array + "\r\n"
|
169
|
+
expect(csv.encoding).to eq Encoding::Shift_JIS
|
170
|
+
end
|
171
|
+
|
172
|
+
describe 'name_length_limit オプション' do
|
173
|
+
context '指定した場合' do
|
174
|
+
let(:row_hashes) do
|
175
|
+
common = {
|
176
|
+
bank_code: '0123',
|
177
|
+
branch_code: '012',
|
178
|
+
account_type: 'ordinary',
|
179
|
+
number: '0123456',
|
180
|
+
amount: 3200,
|
181
|
+
}
|
182
|
+
|
183
|
+
names = ['サトウハナコ', 'カ)ニホンシヨウジ', 'タブチ']
|
184
|
+
|
185
|
+
names.map {|name| common.merge(name: name) }
|
186
|
+
end
|
187
|
+
|
188
|
+
it '口座名義の長さを制限できる' do
|
189
|
+
csv = transfer.to_csv(name_length_limit: 2)
|
190
|
+
|
191
|
+
expect(csv).to include ',' + 'サト'.encode('Shift_JIS') + ','
|
192
|
+
expect(csv).to include ',' + 'カ)'.encode('Shift_JIS') + ','
|
193
|
+
expect(csv).to include ',' + 'タフ'.encode('Shift_JIS') + ','
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
context '無指定の場合' do
|
198
|
+
let(:row_hashes) do
|
199
|
+
[{
|
200
|
+
bank_code: '0123',
|
201
|
+
branch_code: '012',
|
202
|
+
account_type: 'ordinary',
|
203
|
+
number: '0123456',
|
204
|
+
name: 'ア' * 50,
|
205
|
+
amount: 3200,
|
206
|
+
}]
|
207
|
+
end
|
208
|
+
|
209
|
+
it '48 文字で切る' do
|
210
|
+
csv = transfer.to_csv
|
211
|
+
|
212
|
+
expect(csv).to include ',' + ('ア' * 48).encode('Shift_JIS') + ','
|
213
|
+
end
|
214
|
+
end
|
167
215
|
end
|
168
216
|
end
|
169
217
|
|
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.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- INOUE Takuya
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,9 +87,9 @@ executables: []
|
|
87
87
|
extensions: []
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
|
+
- ".github/workflows/testing.yml"
|
90
91
|
- ".gitignore"
|
91
92
|
- ".rspec"
|
92
|
-
- ".travis.yml"
|
93
93
|
- Gemfile
|
94
94
|
- LICENSE.txt
|
95
95
|
- README.md
|
@@ -105,7 +105,6 @@ files:
|
|
105
105
|
- spec/japan_net_bank/transfer_spec.rb
|
106
106
|
- spec/japan_net_bank_spec.rb
|
107
107
|
- spec/spec_helper.rb
|
108
|
-
- wercker.yml
|
109
108
|
homepage: https://github.com/pepabo/japan_net_bank
|
110
109
|
licenses:
|
111
110
|
- MIT
|
@@ -125,8 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
124
|
- !ruby/object:Gem::Version
|
126
125
|
version: '0'
|
127
126
|
requirements: []
|
128
|
-
|
129
|
-
rubygems_version: 2.2.2
|
127
|
+
rubygems_version: 3.0.3
|
130
128
|
signing_key:
|
131
129
|
specification_version: 4
|
132
130
|
summary: A toolkit for generating Japan Net Bank CSV to transfer.
|
data/.travis.yml
DELETED
data/wercker.yml
DELETED
@@ -1,31 +0,0 @@
|
|
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"
|