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 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"