japan_net_bank 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: cd538ad48dafa976c3d3069c46106b088c5b878a
4
- data.tar.gz: 6989fa4c0a5b0cfbbed9f5bc1eb59ea097855f70
2
+ SHA256:
3
+ metadata.gz: d0770dc9e2afa8e4654c0c742dc05e38af018f53d0cd9af2bcee36bc7ba08932
4
+ data.tar.gz: d89409cf9243ff092e3326d54cfafebf3e75bb1b8e500104ad0f13aaa922d302
5
5
  SHA512:
6
- metadata.gz: 5168634c95e753c781c6639e2bc66fc51b7ece55b21358368b8eadda0aab6a9ace5f60491a4d643aae057df2924e9e30f9bef899b445cffbc75e857116b08ac8
7
- data.tar.gz: a44d06e82af35dfe02c95dd9c56e1b45ecad0b331970e463e911934365c312df8014fa098b3b9d55fa87d27284ce4e2f364d492526becd153837358231c15b70
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
@@ -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", "~> 1.5"
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
- csv = ::CSV.new('', row_sep: "\r\n")
8
- yield(csv)
9
- csv.string
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
- @record_type,
37
- @bank_code,
38
- @branch_code,
39
- account_type_code,
40
- @number,
41
- convert_to_hankaku_katakana(@name).encode('Shift_JIS'),
42
- @amount.to_s,
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
 
@@ -1,3 +1,3 @@
1
1
  module JapanNetBank
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -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
- expect(transfer.to_csv).to eq row_array1 + "\r\n" + row_array2 + "\r\n" + trailer_row_array + "\r\n"
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.1.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: 2014-10-01 00:00:00.000000000 Z
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: '1.5'
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: '1.5'
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
- rubyforge_project:
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.
@@ -1,3 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1.1
@@ -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"