jp_prefecture 0.5.0 → 0.6.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 +4 -4
- data/.travis.yml +1 -0
- data/CHANGELOG.md +7 -2
- data/README.md +4 -1
- data/Rakefile +8 -4
- data/data/zip.yml +0 -4
- data/lib/jp_prefecture/prefecture.rb +23 -12
- data/lib/jp_prefecture/version.rb +1 -1
- data/lib/jp_prefecture/zip_mapping.rb +1 -1
- data/spec/prefecture_spec.rb +21 -0
- metadata +17 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39053050aa747aa80a7e3375ae5de13f46430390
|
4
|
+
data.tar.gz: 9b833787a8c06c93430a03eedc4705c9736620b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 689fb7be7b194e1706f7448324c3b3f4d3c9633c659475eee51a8b45e7c8ce5e1e74ef3aa9687eb791de059bc78f18261805b34f63e4afba11bae42a5d921290
|
7
|
+
data.tar.gz: c7e225554165eca1fccc483a6f881fccc40e4f969ca9b576f6f2a776b2b3b6c23e53c17aa12647bc44d17ff702b43ce243855651b363088bd9596c0e2dc2dc04
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,10 +1,15 @@
|
|
1
|
+
## 0.6.0 (Mar 10, 2014)
|
2
|
+
|
3
|
+
* 都道府県名を前方一致で検索できるようにした (PR [#11](https://github.com/chocoby/jp_prefecture/pull/11)/[@yuuna](https://github.com/yuuna))
|
4
|
+
* 都道府県名の検索ロジックを高速化
|
5
|
+
|
1
6
|
## 0.5.0 (Nov 30, 2013)
|
2
7
|
|
3
|
-
* 郵便番号から都道府県を検索する機能の追加 (PR #9
|
8
|
+
* 郵便番号から都道府県を検索する機能の追加 (PR [#9](https://github.com/chocoby/jp_prefecture/pull/9)/[@fruwe](https://github.com/fruwe))
|
4
9
|
|
5
10
|
## 0.4.0 (Jul 08, 2013)
|
6
11
|
|
7
|
-
* 都道府県のマッピングを変更する機能の追加 (PR #8
|
12
|
+
* 都道府県のマッピングを変更する機能の追加 (PR [#8](https://github.com/chocoby/jp_prefecture/pull/8)/[@mizoR](https://github.com/mizoR))
|
8
13
|
|
9
14
|
## 0.3.2 (Jun 12, 2013)
|
10
15
|
|
data/README.md
CHANGED
@@ -81,6 +81,9 @@ JpPrefecture::Prefecture.find name: "Tokyo"
|
|
81
81
|
|
82
82
|
JpPrefecture::Prefecture.find name: "tokyo"
|
83
83
|
# => #<JpPrefecture::Prefecture:0x007f965c0c5a40 @code=13, @name="東京都", @name_e="Tokyo">
|
84
|
+
|
85
|
+
JpPrefecture::Prefecture.find name: "東京"
|
86
|
+
# => #<JpPrefecture::Prefecture:0x007fe8b2b6f678 @code=13, @name="東京都", @name_e="Tokyo">
|
84
87
|
```
|
85
88
|
|
86
89
|
### 都道府県の一覧を取得
|
@@ -176,7 +179,7 @@ GitHub の [Issues](https://github.com/chocoby/jp_prefecture/issues) を参照
|
|
176
179
|
|
177
180
|
## 対象バージョン
|
178
181
|
|
179
|
-
* Ruby: 1.9.3 / 2.0.
|
182
|
+
* Ruby: 1.9.3 / 2.0 / 2.1
|
180
183
|
* Rails: 3.2.x / 4.0.x
|
181
184
|
|
182
185
|
## Contributing
|
data/Rakefile
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
|
+
# coding: utf-8
|
2
3
|
require "bundler/gem_tasks"
|
3
4
|
|
4
5
|
task :default => [:spec]
|
@@ -11,6 +12,7 @@ begin
|
|
11
12
|
rescue LoadError => e
|
12
13
|
end
|
13
14
|
|
15
|
+
desc 'zip.yml を作成します'
|
14
16
|
task :create_zips do
|
15
17
|
require 'csv'
|
16
18
|
require 'jp_prefecture'
|
@@ -27,10 +29,12 @@ task :create_zips do
|
|
27
29
|
zips = []
|
28
30
|
|
29
31
|
# read CSV
|
30
|
-
CSV.foreach(file_name, headers: false){|line| zips << [line[2],line[6]]}
|
32
|
+
CSV.foreach(file_name, headers: false) { |line| zips << [line[2], line[6]] }
|
31
33
|
|
32
34
|
# create sorted list of zips -> prefecture_code
|
33
|
-
zips = zips
|
35
|
+
zips = zips
|
36
|
+
.collect { |zip, prefecture| [zip.to_i, JpPrefecture::Prefecture.find(name: prefecture).code] }
|
37
|
+
.sort{ |x, y| x[0] <=> y[0] }
|
34
38
|
|
35
39
|
# prepare calculation
|
36
40
|
ranged_zips = []
|
@@ -54,7 +58,7 @@ task :create_zips do
|
|
54
58
|
|
55
59
|
ranged_zips.each do |r0, r1, code|
|
56
60
|
prefectures_to_zip[code] ||= []
|
57
|
-
prefectures_to_zip[code] << [r0,r1]
|
61
|
+
prefectures_to_zip[code] << [r0, r1]
|
58
62
|
end
|
59
63
|
|
60
64
|
prefectures_to_zip = Hash[*prefectures_to_zip.sort.flatten(1)]
|
@@ -67,4 +71,4 @@ task :create_zips do
|
|
67
71
|
|
68
72
|
# delete temporary file
|
69
73
|
`rm #{file_name}`
|
70
|
-
end
|
74
|
+
end
|
data/data/zip.yml
CHANGED
@@ -131,8 +131,6 @@
|
|
131
131
|
- - 5200461
|
132
132
|
- 5200465
|
133
133
|
- - 6000000
|
134
|
-
- 6170857
|
135
|
-
- - 6180000
|
136
134
|
- 6180000
|
137
135
|
- - 6180071
|
138
136
|
- 6293579
|
@@ -142,8 +140,6 @@
|
|
142
140
|
- - 5640000
|
143
141
|
- 5998276
|
144
142
|
- - 6180000
|
145
|
-
- 6180000
|
146
|
-
- - 6180001
|
147
143
|
- 6180024
|
148
144
|
- - 6300271
|
149
145
|
- 6300272
|
@@ -19,14 +19,14 @@ module JpPrefecture
|
|
19
19
|
# @param name_e [String] 都道府県名(英語表記)
|
20
20
|
# @param zips [Array] 郵便番号の配列 (array of ranges, can be used in ARel, e.g. User.where(zip: prefecture.zips))
|
21
21
|
def self.build(code, name, name_e)
|
22
|
-
|
22
|
+
pref = self.new
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
pref.code = code
|
25
|
+
pref.name = name
|
26
|
+
pref.name_e = name_e.capitalize
|
27
|
+
pref.zips = ZipMapping.data[code]
|
28
28
|
|
29
|
-
|
29
|
+
pref
|
30
30
|
end
|
31
31
|
|
32
32
|
# 都道府県を検索
|
@@ -39,6 +39,9 @@ module JpPrefecture
|
|
39
39
|
# # 都道府県名から検索
|
40
40
|
# JpPrefecture::Prefecture.find(name: '北海道')
|
41
41
|
#
|
42
|
+
# # 都道府県名から検索(先頭一致)
|
43
|
+
# JpPrefecture::Prefecture.find(name: '東京')
|
44
|
+
#
|
42
45
|
# # 英語表記の都道府県名から検索
|
43
46
|
# JpPrefecture::Prefecture.find(name: 'Hokkaido')
|
44
47
|
# JpPrefecture::Prefecture.find(name: 'hokkaido')
|
@@ -96,15 +99,23 @@ module JpPrefecture
|
|
96
99
|
|
97
100
|
protected
|
98
101
|
|
99
|
-
#
|
102
|
+
# 名前から都道府県コードを先頭一致で検索
|
103
|
+
#
|
104
|
+
# @param name [String] 検索する都道府県名
|
105
|
+
# @return [Integer] 見つかった場合は都道府県コード
|
106
|
+
# @return [nil] 見つからない場合は nil
|
100
107
|
def self.find_code_by_name(name)
|
101
|
-
|
102
|
-
v.has_value?(name.downcase)
|
103
|
-
}.first
|
108
|
+
name = name.downcase
|
104
109
|
|
105
|
-
|
110
|
+
Mapping.data.each do |m|
|
111
|
+
m[1].values.each do |v|
|
112
|
+
if v.start_with?(name)
|
113
|
+
return m[0]
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
106
117
|
|
107
|
-
|
118
|
+
nil
|
108
119
|
end
|
109
120
|
|
110
121
|
end
|
data/spec/prefecture_spec.rb
CHANGED
@@ -55,6 +55,27 @@ describe JpPrefecture::Prefecture do
|
|
55
55
|
it_behaves_like "都道府県が見つかる", name: "hokkaido"
|
56
56
|
it_behaves_like "都道府県が見つからない", name: "udon"
|
57
57
|
end
|
58
|
+
|
59
|
+
describe '都道府県名(先頭一致)' do
|
60
|
+
let(:pref) { JpPrefecture::Prefecture.find(name: '東京') }
|
61
|
+
it { expect(pref.name).to eq '東京都' }
|
62
|
+
|
63
|
+
let(:pref2) { JpPrefecture::Prefecture.find(name: '京都') }
|
64
|
+
it { expect(pref2.name).to eq '京都府' }
|
65
|
+
|
66
|
+
context 'マッチする都道府県が複数あった場合' do
|
67
|
+
let(:pref) { JpPrefecture::Prefecture.find(name: '宮') }
|
68
|
+
it { expect(pref.name).to eq '宮城県' }
|
69
|
+
end
|
70
|
+
|
71
|
+
context 'マッチする都道府県が複数あった場合(英語表記)' do
|
72
|
+
let(:pref) { JpPrefecture::Prefecture.find(name: 'miya') }
|
73
|
+
it { expect(pref.name_e).to eq 'Miyagi' }
|
74
|
+
|
75
|
+
let(:pref2) { JpPrefecture::Prefecture.find(name: 'Miya') }
|
76
|
+
it { expect(pref2.name_e).to eq 'Miyagi' }
|
77
|
+
end
|
78
|
+
end
|
58
79
|
end
|
59
80
|
|
60
81
|
describe '渡した変数について' do
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jp_prefecture
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- chocoby
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 2.14.1
|
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
40
|
version: 2.14.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: activerecord
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 3.2.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 3.2.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: sqlite3
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
description: Convert japan prefecture code(JIS X 0402 based) into prefecture name.
|
@@ -73,10 +73,10 @@ executables: []
|
|
73
73
|
extensions: []
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
|
-
- .gitignore
|
77
|
-
- .rspec
|
78
|
-
- .travis.yml
|
79
|
-
- .yardopts
|
76
|
+
- ".gitignore"
|
77
|
+
- ".rspec"
|
78
|
+
- ".travis.yml"
|
79
|
+
- ".yardopts"
|
80
80
|
- CHANGELOG.md
|
81
81
|
- Gemfile
|
82
82
|
- LICENSE
|
@@ -109,17 +109,17 @@ require_paths:
|
|
109
109
|
- lib
|
110
110
|
required_ruby_version: !ruby/object:Gem::Requirement
|
111
111
|
requirements:
|
112
|
-
- -
|
112
|
+
- - ">="
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '0'
|
115
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
|
-
- -
|
117
|
+
- - ">="
|
118
118
|
- !ruby/object:Gem::Version
|
119
119
|
version: '0'
|
120
120
|
requirements: []
|
121
121
|
rubyforge_project:
|
122
|
-
rubygems_version: 2.
|
122
|
+
rubygems_version: 2.2.2
|
123
123
|
signing_key:
|
124
124
|
specification_version: 4
|
125
125
|
summary: Convert japan prefecture code into prefecture name
|