jipcode 1.4.10 → 1.5.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
2
  SHA256:
3
- metadata.gz: d1ec80906ff6c5cf821fb8ed2df9a466f02781ed37afd83fbf505ea1254711c7
4
- data.tar.gz: 562aec84b3989218833c1b709af3e3f7329d86201914d7bc6ae2e7332ce71342
3
+ metadata.gz: 61bd6d59de9ec0e0538cc329a86d33a1192eff561aa8fce1d4612d282980aadf
4
+ data.tar.gz: 4ff9316c9141ed00783610c3076c219afbd1a8075d58371c0830569f9da868f6
5
5
  SHA512:
6
- metadata.gz: e5ea6c9cad9da7ca7ed1b0303c282561f1ccd5d1459b8ead6bccd6b117ec6390f412955c6485588bd4f7591e9622d17603cd11c49a4880970a0639195713ffb8
7
- data.tar.gz: e25ec1b5f0bdb30753d7dc5debbd9e4fdfa759faedf5faef546697f74360aefd81cb05aa7df41e739b29f62fb8da08455e7cfecf2735860bed25c5dd5225942f
6
+ metadata.gz: 324c6a8db5dd7d3db43aa90944ff1fafad77f0c8fe65b67972972d5a30329b59a59ada4cbbc18d331eba897ddb9e2c7d8ebe1af92de7f924340944561c557d8d
7
+ data.tar.gz: 26af5bc96c3d19c4b8b6a5708ec97f2f378bfede62fdfa665c010712063e67066ed92a3d473b32e3094d9ab15f65cede3acc8fa2e395aab438fc255d03447fc4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jipcode (1.4.10)
4
+ jipcode (1.5.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -37,6 +37,14 @@ Jipcode.locate('1510051')
37
37
  # => [{zipcode: '1510051', prefecture: '東京都', city: '渋谷区', town: '千駄ヶ谷'}]
38
38
  ```
39
39
 
40
+ #### 都道府県コード
41
+ 次のようにオプションで都道府県コードを検索結果に含めることもできます。
42
+
43
+ ```ruby
44
+ Jipcode.locate('1510051', prefecture_code: true)
45
+ # => [{:zipcode=>"1510051", :prefecture=>"東京都", :city=>"渋谷区", :town=>"千駄ヶ谷", :prefecture_code=>13}]
46
+ ```
47
+
40
48
  ### 更新
41
49
  日本郵便の郵便番号データは月末に更新されています。
42
50
  jipcodeではこれを毎月取り込んでいます。
@@ -1,3 +1,3 @@
1
1
  module Jipcode
2
- VERSION = '1.4.10'
2
+ VERSION = '1.5.0'
3
3
  end
data/lib/jipcode.rb CHANGED
@@ -1,10 +1,12 @@
1
1
  require "jipcode/version"
2
2
  require 'csv'
3
+ require 'yaml'
3
4
 
4
5
  module Jipcode
5
6
  ZIPCODE_PATH = "#{File.dirname(__FILE__)}/../zipcode/latest".freeze
7
+ PREFECTURE_CODE = YAML.load_file("#{File.dirname(__FILE__)}/../prefecture_code.yml").freeze
6
8
 
7
- def locate(zipcode)
9
+ def locate(zipcode, opt={})
8
10
  # 数字7桁以外の入力は受け付けない
9
11
  return [] unless zipcode =~ /\A\d{7}?\z/
10
12
 
@@ -13,15 +15,29 @@ module Jipcode
13
15
  return [] unless File.exist?(path)
14
16
 
15
17
  addresses_array = CSV.read(path).select { |address| address[0] == zipcode }
16
- addresses_array.map do |address_param|
17
- {
18
- zipcode: address_param[0],
19
- prefecture: address_param[1],
20
- city: address_param[2],
21
- town: address_param[3]
22
- }
18
+
19
+ if opt.empty?
20
+ # optが空の場合、直接basic_address_fromを呼んで不要な判定を避ける。
21
+ addresses_array.map { |address_param| basic_address_from(address_param) }
22
+ else
23
+ addresses_array.map { |address_param| extended_address_from(address_param, opt) }
23
24
  end
24
25
  end
25
26
 
26
- module_function :locate
27
+ def basic_address_from(address_param)
28
+ {
29
+ zipcode: address_param[0],
30
+ prefecture: address_param[1],
31
+ city: address_param[2],
32
+ town: address_param[3]
33
+ }
34
+ end
35
+
36
+ def extended_address_from(address_param, opt={})
37
+ address = basic_address_from(address_param)
38
+ address[:prefecture_code] = PREFECTURE_CODE.invert[address_param[1]] if opt[:prefecture_code]
39
+ address
40
+ end
41
+
42
+ module_function :locate, :basic_address_from, :extended_address_from
27
43
  end
@@ -0,0 +1,47 @@
1
+ 1: 北海道
2
+ 2: 青森県
3
+ 3: 岩手県
4
+ 4: 宮城県
5
+ 5: 秋田県
6
+ 6: 山形県
7
+ 7: 福島県
8
+ 8: 茨城県
9
+ 9: 栃木県
10
+ 10: 群馬県
11
+ 11: 埼玉県
12
+ 12: 千葉県
13
+ 13: 東京都
14
+ 14: 神奈川県
15
+ 15: 新潟県
16
+ 16: 富山県
17
+ 17: 石川県
18
+ 18: 福井県
19
+ 19: 山梨県
20
+ 20: 長野県
21
+ 21: 岐阜県
22
+ 22: 静岡県
23
+ 23: 愛知県
24
+ 24: 三重県
25
+ 25: 滋賀県
26
+ 26: 京都府
27
+ 27: 大阪府
28
+ 28: 兵庫県
29
+ 29: 奈良県
30
+ 30: 和歌山県
31
+ 31: 鳥取県
32
+ 32: 島根県
33
+ 33: 岡山県
34
+ 34: 広島県
35
+ 35: 山口県
36
+ 36: 徳島県
37
+ 37: 香川県
38
+ 38: 愛媛県
39
+ 39: 高知県
40
+ 40: 福岡県
41
+ 41: 佐賀県
42
+ 42: 長崎県
43
+ 43: 熊本県
44
+ 44: 大分県
45
+ 45: 宮崎県
46
+ 46: 鹿児島県
47
+ 47: 沖縄県
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jipcode
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.10
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - rinkei
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-01 00:00:00.000000000 Z
11
+ date: 2019-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -132,6 +132,7 @@ files:
132
132
  - lib/jipcode.rb
133
133
  - lib/jipcode/japan_post.rb
134
134
  - lib/jipcode/version.rb
135
+ - prefecture_code.yml
135
136
  - zipcode/current_month
136
137
  - zipcode/latest/001.csv
137
138
  - zipcode/latest/002.csv