jp_prefecture 0.6.0 → 0.7.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
  SHA1:
3
- metadata.gz: 39053050aa747aa80a7e3375ae5de13f46430390
4
- data.tar.gz: 9b833787a8c06c93430a03eedc4705c9736620b4
3
+ metadata.gz: f8b93831e7f498063dae032c81111f89148be1ca
4
+ data.tar.gz: 79d7d9f7578665c10f9bd3ad1b181dee94bcfd1b
5
5
  SHA512:
6
- metadata.gz: 689fb7be7b194e1706f7448324c3b3f4d3c9633c659475eee51a8b45e7c8ce5e1e74ef3aa9687eb791de059bc78f18261805b34f63e4afba11bae42a5d921290
7
- data.tar.gz: c7e225554165eca1fccc483a6f881fccc40e4f969ca9b576f6f2a776b2b3b6c23e53c17aa12647bc44d17ff702b43ce243855651b363088bd9596c0e2dc2dc04
6
+ metadata.gz: a69bc4f6d25791bc2495b1d1d8523c5fa6de4ac3b072cca48f4e978f3462c900b4e41e0578b4a912ae41a2519db6c983c904b2f6254ca40fbcd036a8943a660d
7
+ data.tar.gz: 78fcf9930d2547d8aa73180e71ace4015f268a3f59baf92f14c910b8b283d8a757cddd2ef93461e2b28402affb10ea4fa79e2f19a438473aaca84b9ed356bf99
@@ -1,3 +1,7 @@
1
+ ## 0.7.0 (Jun 18, 2014)
2
+
3
+ * 都道府県名にひらがな、カタカナを追加 (PR [#12](https://github.com/chocoby/jp_prefecture/pull/12)/[@yukihr](https://github.com/yukihr))
4
+
1
5
  ## 0.6.0 (Mar 10, 2014)
2
6
 
3
7
  * 都道府県名を前方一致で検索できるようにした (PR [#11](https://github.com/chocoby/jp_prefecture/pull/11)/[@yuuna](https://github.com/yuuna))
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # JpPrefecture
2
2
 
3
- [![Build Status](https://travis-ci.org/chocoby/jp_prefecture.png?branch=master)](https://travis-ci.org/chocoby/jp_prefecture)
4
- [![Dependency Status](https://gemnasium.com/chocoby/jp_prefecture.png)](https://gemnasium.com/chocoby/jp_prefecture)
5
- [![Gem Version](https://badge.fury.io/rb/jp_prefecture.png)](http://badge.fury.io/rb/jp_prefecture)
3
+ [![Build Status](http://img.shields.io/travis/chocoby/jp_prefecture/master.svg)](https://travis-ci.org/chocoby/jp_prefecture)
4
+ [![Dependency Status](http://img.shields.io/gemnasium/chocoby/jp_prefecture.svg)](https://gemnasium.com/chocoby/jp_prefecture)
5
+ [![Gem Version](http://img.shields.io/gem/v/jp_prefecture.svg)](https://rubygems.org/gems/jp_prefecture)
6
6
 
7
7
  https://rubygems.org/gems/jp_prefecture
8
8
 
@@ -55,13 +55,17 @@ require 'jp_prefecture'
55
55
 
56
56
  ```ruby
57
57
  pref = JpPrefecture::Prefecture.find 13
58
- # => #<JpPrefecture::Prefecture:0x007fd0a3d43fe8 @code=13, @name="東京都", @name_e="Tokyo">
58
+ # => #<JpPrefecture::Prefecture:0x007fd3c1838208 @code=13, @name="東京都", @name_e="Tokyo", @name_h="とうきょうと", @name_k="トウキョウト", @zips=[1000000..2080035]>
59
59
  pref.code
60
60
  # => 13
61
61
  pref.name
62
62
  # => "東京都"
63
63
  pref.name_e
64
64
  # => "Tokyo"
65
+ pref.name_h
66
+ # => "とうきょうと"
67
+ pref.name_k
68
+ # => "トウキョウト"
65
69
  ```
66
70
 
67
71
  以下のように渡すことも可能です:
@@ -74,23 +78,29 @@ JpPrefecture::Prefecture.find code: 13
74
78
 
75
79
  ```ruby
76
80
  JpPrefecture::Prefecture.find name: "東京都"
77
- # => #<JpPrefecture::Prefecture:0x007ff672271800 @code=13, @name="東京都", @name_e="Tokyo">
81
+ # => #<JpPrefecture::Prefecture:0x007fe7bb033040 @code=13, @name="東京都", @name_e="Tokyo", @name_h="とうきょうと", @name_k="トウキョウト", @zips=[1000000..2080035]>
78
82
 
79
83
  JpPrefecture::Prefecture.find name: "Tokyo"
80
- # => #<JpPrefecture::Prefecture:0x007fb3c2828b10 @code=13, @name="東京都", @name_e="Tokyo">
84
+ # => #<JpPrefecture::Prefecture:0x007fe7bb032758 @code=13, @name="東京都", @name_e="Tokyo", @name_h="とうきょうと", @name_k="トウキョウト", @zips=[1000000..2080035]>
81
85
 
82
86
  JpPrefecture::Prefecture.find name: "tokyo"
83
- # => #<JpPrefecture::Prefecture:0x007f965c0c5a40 @code=13, @name="東京都", @name_e="Tokyo">
87
+ # => #<JpPrefecture::Prefecture:0x007fe7bb031e70 @code=13, @name="東京都", @name_e="Tokyo", @name_h="とうきょうと", @name_k="トウキョウト", @zips=[1000000..2080035]>
88
+
89
+ JpPrefecture::Prefecture.find name: "トウキョウト"
90
+ # => #<JpPrefecture::Prefecture:0x007f8cc2038210 @code=13, @name="東京都", @name_e="Tokyo", @name_h="とうきょうと", @name_k="トウキョウト", @zips=[1000000..2080035]>
91
+
92
+ JpPrefecture::Prefecture.find name: "とうきょうと"
93
+ # => #<JpPrefecture::Prefecture:0x007f8cc2033760 @code=13, @name="東京都", @name_e="Tokyo", @name_h="とうきょうと", @name_k="トウキョウト", @zips=[1000000..2080035]>
84
94
 
85
95
  JpPrefecture::Prefecture.find name: "東京"
86
- # => #<JpPrefecture::Prefecture:0x007fe8b2b6f678 @code=13, @name="東京都", @name_e="Tokyo">
96
+ # => #<JpPrefecture::Prefecture:0x007fe7bb0305c0 @code=13, @name="東京都", @name_e="Tokyo", @name_h="とうきょうと", @name_k="トウキョウト", @zips=[1000000..2080035]>
87
97
  ```
88
98
 
89
99
  ### 都道府県の一覧を取得
90
100
 
91
101
  ```ruby
92
102
  JpPrefecture::Prefecture.all
93
- # => [#<JpPrefecture::Prefecture:0x007fd0a3d78d38 @code=1, @name="北海道", @name_e="Hokkaido">, ...]
103
+ # => [#<JpPrefecture::Prefecture:0x007fea13830158 @code=1, @name="北海道", @name_e="Hokkaido", @name_h="ほっかいどう", @name_k="ホッカイドウ", @zips=[10000..70895, 400000..996509]>, ...]
94
104
  ```
95
105
 
96
106
  ### Rails(ActiveRecord) で使用する
@@ -180,7 +190,7 @@ GitHub の [Issues](https://github.com/chocoby/jp_prefecture/issues) を参照
180
190
  ## 対象バージョン
181
191
 
182
192
  * Ruby: 1.9.3 / 2.0 / 2.1
183
- * Rails: 3.2.x / 4.0.x
193
+ * Rails: 3.2 / 4.0 / 4.1
184
194
 
185
195
  ## Contributing
186
196
 
@@ -4,141 +4,235 @@
4
4
  1:
5
5
  :name: 北海道
6
6
  :name_e: hokkaido
7
+ :name_h: ほっかいどう
8
+ :name_k: ホッカイドウ
7
9
  2:
8
10
  :name: 青森県
9
11
  :name_e: aomori
12
+ :name_h: あおもりけん
13
+ :name_k: アオモリケン
10
14
  3:
11
15
  :name: 岩手県
12
16
  :name_e: iwate
17
+ :name_h: いわてけん
18
+ :name_k: イワテケン
13
19
  4:
14
20
  :name: 宮城県
15
21
  :name_e: miyagi
22
+ :name_h: みやぎけん
23
+ :name_k: ミヤギケン
16
24
  5:
17
25
  :name: 秋田県
18
26
  :name_e: akita
27
+ :name_h: あきたけん
28
+ :name_k: アキタケン
19
29
  6:
20
30
  :name: 山形県
21
31
  :name_e: yamagata
32
+ :name_h: やまがたけん
33
+ :name_k: ヤマガタケン
22
34
  7:
23
35
  :name: 福島県
24
36
  :name_e: fukushima
37
+ :name_h: ふくしまけん
38
+ :name_k: フクシマケン
25
39
  8:
26
40
  :name: 茨城県
27
41
  :name_e: ibaraki
42
+ :name_h: いばらきけん
43
+ :name_k: イバラキケン
28
44
  9:
29
45
  :name: 栃木県
30
46
  :name_e: tochigi
47
+ :name_h: とちぎけん
48
+ :name_k: トチギケン
31
49
  10:
32
50
  :name: 群馬県
33
51
  :name_e: gunma
52
+ :name_h: ぐんまけん
53
+ :name_k: グンマケン
34
54
  11:
35
55
  :name: 埼玉県
36
56
  :name_e: saitama
57
+ :name_h: さいたまけん
58
+ :name_k: サイタマケン
37
59
  12:
38
60
  :name: 千葉県
39
61
  :name_e: chiba
62
+ :name_h: ちばけん
63
+ :name_k: チバケン
40
64
  13:
41
65
  :name: 東京都
42
66
  :name_e: tokyo
67
+ :name_h: とうきょうと
68
+ :name_k: トウキョウト
43
69
  14:
44
70
  :name: 神奈川県
45
71
  :name_e: kanagawa
72
+ :name_h: かながわけん
73
+ :name_k: カナガワケン
46
74
  15:
47
75
  :name: 新潟県
48
76
  :name_e: niigata
77
+ :name_h: にいがたけん
78
+ :name_k: ニイガタケン
49
79
  16:
50
80
  :name: 富山県
51
81
  :name_e: toyama
82
+ :name_h: とやまけん
83
+ :name_k: トヤマケン
52
84
  17:
53
85
  :name: 石川県
54
86
  :name_e: ishikawa
87
+ :name_h: いしかわけん
88
+ :name_k: イシカワケン
55
89
  18:
56
90
  :name: 福井県
57
91
  :name_e: fukui
92
+ :name_h: ふくいけん
93
+ :name_k: フクイケン
58
94
  19:
59
95
  :name: 山梨県
60
96
  :name_e: yamanashi
97
+ :name_h: やまなしけん
98
+ :name_k: ヤマナシケン
61
99
  20:
62
100
  :name: 長野県
63
101
  :name_e: nagano
102
+ :name_h: ながのけん
103
+ :name_k: ナガノケン
64
104
  21:
65
105
  :name: 岐阜県
66
106
  :name_e: gifu
107
+ :name_h: ぎふけん
108
+ :name_k: ギフケン
67
109
  22:
68
110
  :name: 静岡県
69
111
  :name_e: shizuoka
112
+ :name_h: しずおかけん
113
+ :name_k: シズオカケン
70
114
  23:
71
115
  :name: 愛知県
72
116
  :name_e: aichi
117
+ :name_h: あいちけん
118
+ :name_k: アイチケン
73
119
  24:
74
120
  :name: 三重県
75
121
  :name_e: mie
122
+ :name_h: みえけん
123
+ :name_k: ミエケン
76
124
  25:
77
125
  :name: 滋賀県
78
126
  :name_e: shiga
127
+ :name_h: しがけん
128
+ :name_k: シガケン
79
129
  26:
80
130
  :name: 京都府
81
131
  :name_e: kyoto
132
+ :name_h: きょうとふ
133
+ :name_k: キョウトフ
82
134
  27:
83
135
  :name: 大阪府
84
136
  :name_e: osaka
137
+ :name_h: おおさかふ
138
+ :name_k: オオサカフ
85
139
  28:
86
140
  :name: 兵庫県
87
141
  :name_e: hyogo
142
+ :name_h: ひょうごけん
143
+ :name_k: ヒョウゴケン
88
144
  29:
89
145
  :name: 奈良県
90
146
  :name_e: nara
147
+ :name_h: ならけん
148
+ :name_k: ナラケン
91
149
  30:
92
150
  :name: 和歌山県
93
151
  :name_e: wakayama
152
+ :name_h: わかやまけん
153
+ :name_k: ワカヤマケン
94
154
  31:
95
155
  :name: 鳥取県
96
156
  :name_e: tottori
157
+ :name_h: とっとりけん
158
+ :name_k: トットリケン
97
159
  32:
98
160
  :name: 島根県
99
161
  :name_e: shimane
162
+ :name_h: しまねけん
163
+ :name_k: シマネケン
100
164
  33:
101
165
  :name: 岡山県
102
166
  :name_e: okayama
167
+ :name_h: おかやまけん
168
+ :name_k: オカヤマケン
103
169
  34:
104
170
  :name: 広島県
105
171
  :name_e: hiroshima
172
+ :name_h: ひろしまけん
173
+ :name_k: ヒロシマケン
106
174
  35:
107
175
  :name: 山口県
108
176
  :name_e: yamaguchi
177
+ :name_h: やまぐちけん
178
+ :name_k: ヤマグチケン
109
179
  36:
110
180
  :name: 徳島県
111
181
  :name_e: tokushima
182
+ :name_h: とくしまけん
183
+ :name_k: トクシマケン
112
184
  37:
113
185
  :name: 香川県
114
186
  :name_e: kagawa
187
+ :name_h: かがわけん
188
+ :name_k: カガワケン
115
189
  38:
116
190
  :name: 愛媛県
117
191
  :name_e: ehime
192
+ :name_h: えひめけん
193
+ :name_k: エヒメケン
118
194
  39:
119
195
  :name: 高知県
120
196
  :name_e: kochi
197
+ :name_h: こうちけん
198
+ :name_k: コウチケン
121
199
  40:
122
200
  :name: 福岡県
123
201
  :name_e: fukuoka
202
+ :name_h: ふくおかけん
203
+ :name_k: フクオカケン
124
204
  41:
125
205
  :name: 佐賀県
126
206
  :name_e: saga
207
+ :name_h: さがけん
208
+ :name_k: サガケン
127
209
  42:
128
210
  :name: 長崎県
129
211
  :name_e: nagasaki
212
+ :name_h: ながさきけん
213
+ :name_k: ナガサキケン
130
214
  43:
131
215
  :name: 熊本県
132
216
  :name_e: kumamoto
217
+ :name_h: くまもとけん
218
+ :name_k: クマモトケン
133
219
  44:
134
220
  :name: 大分県
135
221
  :name_e: oita
222
+ :name_h: おおいたけん
223
+ :name_k: オオイタケン
136
224
  45:
137
225
  :name: 宮崎県
138
226
  :name_e: miyazaki
227
+ :name_h: みやざきけん
228
+ :name_k: ミヤザキケン
139
229
  46:
140
230
  :name: 鹿児島県
141
231
  :name_e: kagoshima
232
+ :name_h: かごしまけん
233
+ :name_k: カゴシマケン
142
234
  47:
143
235
  :name: 沖縄県
144
236
  :name_e: okinawa
237
+ :name_h: おきなわけん
238
+ :name_k: オキナワケン
@@ -6,7 +6,7 @@ module JpPrefecture
6
6
  # 都道府県のコードと名前を扱うクラス
7
7
  class Prefecture
8
8
 
9
- attr_accessor :code, :name, :name_e, :zips
9
+ attr_accessor :code, :name, :name_e, :name_h, :name_k, :zips
10
10
 
11
11
  # 配列から都道府県クラスを生成
12
12
  #
@@ -17,13 +17,17 @@ module JpPrefecture
17
17
  # @param pref [Integer] 都道府県コード
18
18
  # @param name [String] 都道府県名
19
19
  # @param name_e [String] 都道府県名(英語表記)
20
+ # @param optional name_h [String] 都道府県名(ひらがな表記)
21
+ # @param optional name_k [String] 都道府県名(カタカナ表記)
20
22
  # @param zips [Array] 郵便番号の配列 (array of ranges, can be used in ARel, e.g. User.where(zip: prefecture.zips))
21
- def self.build(code, name, name_e)
23
+ def self.build(code, name, name_e, name_h = nil, name_k = nil)
22
24
  pref = self.new
23
25
 
24
26
  pref.code = code
25
27
  pref.name = name
26
28
  pref.name_e = name_e.capitalize
29
+ pref.name_h = name_h
30
+ pref.name_k = name_k
27
31
  pref.zips = ZipMapping.data[code]
28
32
 
29
33
  pref
@@ -39,7 +43,7 @@ module JpPrefecture
39
43
  # # 都道府県名から検索
40
44
  # JpPrefecture::Prefecture.find(name: '北海道')
41
45
  #
42
- # # 都道府県名から検索(先頭一致)
46
+ # # 都道府県名から検索(前方一致)
43
47
  # JpPrefecture::Prefecture.find(name: '東京')
44
48
  #
45
49
  # # 英語表記の都道府県名から検索
@@ -49,7 +53,7 @@ module JpPrefecture
49
53
  # @param args [Integer] 都道府県コード
50
54
  # @param [Hash] args 検索条件
51
55
  # @option args [Integer] :code 都道府県コード
52
- # @option args [String] :name 都道府県名/英語表記の都道府県名
56
+ # @option args [String] :name 都道府県名/英語/ひらがな/カタカナ表記の都道府県名
53
57
  # @option args [Integer] :zip 郵便番号
54
58
  # @return [JpPrefecture::Prefecture] 都道府県が見つかった場合は都道府県クラス
55
59
  # @return [nil] 都道府県が見つからない場合は nil
@@ -74,7 +78,9 @@ module JpPrefecture
74
78
 
75
79
  return unless names
76
80
 
77
- self.build(code, names[:name], names[:name_e])
81
+ self.build(code,
82
+ names[:name], names[:name_e],
83
+ names[:name_h], names[:name_k])
78
84
  end
79
85
 
80
86
  # すべての都道府県クラスを返す
@@ -93,13 +99,15 @@ module JpPrefecture
93
99
  def self.all
94
100
  Mapping.data.map do |pref|
95
101
  names = pref[1]
96
- self.build(pref[0], names[:name], names[:name_e])
102
+ self.build(pref[0],
103
+ names[:name], names[:name_e],
104
+ names[:name_h], names[:name_k])
97
105
  end
98
106
  end
99
107
 
100
108
  protected
101
109
 
102
- # 名前から都道府県コードを先頭一致で検索
110
+ # 名前から都道府県コードを前方一致で検索
103
111
  #
104
112
  # @param name [String] 検索する都道府県名
105
113
  # @return [Integer] 見つかった場合は都道府県コード
@@ -1,3 +1,3 @@
1
1
  module JpPrefecture
2
- VERSION = "0.6.0"
2
+ VERSION = "0.7.0"
3
3
  end
@@ -3,10 +3,12 @@ require 'spec_helper'
3
3
 
4
4
  describe JpPrefecture::Prefecture do
5
5
  describe '.build' do
6
- let(:pref) { JpPrefecture::Prefecture.build(1, '北海道', 'Hokkaido') }
6
+ let(:pref) { JpPrefecture::Prefecture.build(1, '北海道', 'Hokkaido', 'ほっかいどう', 'ホッカイドウ') }
7
7
  it { pref.code.should eq 1 }
8
8
  it { pref.name.should eq '北海道' }
9
9
  it { pref.name_e.should eq 'Hokkaido' }
10
+ it { pref.name_h.should eq 'ほっかいどう' }
11
+ it { pref.name_k.should eq 'ホッカイドウ' }
10
12
  it { pref.zips.should eq [10000..70895, 400000..996509] }
11
13
  end
12
14
 
@@ -17,6 +19,8 @@ describe JpPrefecture::Prefecture do
17
19
  it { pref.code.should eq 1 }
18
20
  it { pref.name.should eq '北海道' }
19
21
  it { pref.name_e.should eq 'Hokkaido' }
22
+ it { pref.name_h.should eq 'ほっかいどう' }
23
+ it { pref.name_k.should eq 'ホッカイドウ' }
20
24
  it { pref.zips.should eq [10000..70895, 400000..996509] }
21
25
  end
22
26
 
@@ -56,7 +60,17 @@ describe JpPrefecture::Prefecture do
56
60
  it_behaves_like "都道府県が見つからない", name: "udon"
57
61
  end
58
62
 
59
- describe '都道府県名(先頭一致)' do
63
+ describe '都道府県名(ひらがな表記)' do
64
+ it_behaves_like "都道府県が見つかる", name: "ほっかいどう"
65
+ it_behaves_like "都道府県が見つからない", name: "うどん"
66
+ end
67
+
68
+ describe '都道府県名(カタカナ表記)' do
69
+ it_behaves_like "都道府県が見つかる", name: "ホッカイドウ"
70
+ it_behaves_like "都道府県が見つからない", name: "ウドン"
71
+ end
72
+
73
+ describe '都道府県名(前方一致)' do
60
74
  let(:pref) { JpPrefecture::Prefecture.find(name: '東京') }
61
75
  it { expect(pref.name).to eq '東京都' }
62
76
 
@@ -75,6 +89,16 @@ describe JpPrefecture::Prefecture do
75
89
  let(:pref2) { JpPrefecture::Prefecture.find(name: 'Miya') }
76
90
  it { expect(pref2.name_e).to eq 'Miyagi' }
77
91
  end
92
+
93
+ context 'マッチする都道府県が複数あった場合(ひらがな表記)' do
94
+ let(:pref) { JpPrefecture::Prefecture.find(name: 'みや') }
95
+ it { expect(pref.name_h).to eq 'みやぎけん' }
96
+ end
97
+
98
+ context 'マッチする都道府県が複数あった場合(カタカナ表記)' do
99
+ let(:pref) { JpPrefecture::Prefecture.find(name: 'ミヤ') }
100
+ it { expect(pref.name_k).to eq 'ミヤギケン' }
101
+ end
78
102
  end
79
103
  end
80
104
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jp_prefecture
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - chocoby
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-10 00:00:00.000000000 Z
11
+ date: 2014-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake