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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +8 -0
- data/lib/jipcode/version.rb +1 -1
- data/lib/jipcode.rb +25 -9
- data/prefecture_code.yml +47 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 61bd6d59de9ec0e0538cc329a86d33a1192eff561aa8fce1d4612d282980aadf
|
4
|
+
data.tar.gz: 4ff9316c9141ed00783610c3076c219afbd1a8075d58371c0830569f9da868f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 324c6a8db5dd7d3db43aa90944ff1fafad77f0c8fe65b67972972d5a30329b59a59ada4cbbc18d331eba897ddb9e2c7d8ebe1af92de7f924340944561c557d8d
|
7
|
+
data.tar.gz: 26af5bc96c3d19c4b8b6a5708ec97f2f378bfede62fdfa665c010712063e67066ed92a3d473b32e3094d9ab15f65cede3acc8fa2e395aab438fc255d03447fc4
|
data/Gemfile.lock
CHANGED
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ではこれを毎月取り込んでいます。
|
data/lib/jipcode/version.rb
CHANGED
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
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
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
|
-
|
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
|
data/prefecture_code.yml
ADDED
@@ -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
|
+
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-
|
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
|