jp_prefecture 0.1.1 → 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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.2.0 (June 9, 2013) ##
2
+
3
+ * 英語表記を追加
4
+
1
5
  ## 0.1.1 (March 1, 2013) ##
2
6
 
3
7
  * モデルで使用する時に、生成するメソッド名を指定できるようにした
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # JpPrefecture
2
2
 
3
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)
4
5
 
5
6
  https://rubygems.org/gems/jp_prefecture
6
7
 
@@ -37,16 +38,18 @@ JIS X 0402 で定義されている都道府県コードをベースに、
37
38
  require 'jp_prefecture'
38
39
 
39
40
  pref = JpPrefecture::Prefecture.find 13
40
- # => #<JpPrefecture::Prefecture:0x007fd0a3d43fe8 @code=13, @name="東京都">
41
+ # => #<JpPrefecture::Prefecture:0x007fd0a3d43fe8 @code=13, @name="東京都", @name_e="Tokyo">
41
42
  pref.code
42
43
  # => 13
43
44
  pref.name
44
45
  # => "東京都"
46
+ pref.name_e
47
+ # => "Tokyo"
45
48
 
46
49
  ### 都道府県の一覧を取得
47
50
 
48
51
  JpPrefecture::Prefecture.all
49
- # => [#<JpPrefecture::Prefecture:0x007fd0a3d78d38 @code=1, @name="北海道">, ...]
52
+ # => [#<JpPrefecture::Prefecture:0x007fd0a3d78d38 @code=1, @name="北海道", @name_e="Hokkaido">, ...]
50
53
 
51
54
  ### Rails(ActiveRecord) で使用する
52
55
 
@@ -84,16 +87,16 @@ app/models/place.rb:
84
87
 
85
88
  f.collection_select :prefecture_code, JpPrefecture::Prefecture.all, :code, :name
86
89
 
90
+ # 英語表記
91
+ f.collection_select :prefecture_code, JpPrefecture::Prefecture.all, :code, :name_e
92
+
87
93
  ## ドキュメント
88
94
 
89
95
  [http://rdoc.info/github/chocoby/jp_prefecture/master/frames/index](http://rdoc.info/github/chocoby/jp_prefecture/master/frames/index)
90
96
 
91
97
  ## TODO
92
98
 
93
- * バリデーター
94
- * i18n?(tokyo などの文字列に対応)
95
- * 一つのモデルで複数のカラムをサポート?
96
- * JIS X 0402 で定義されている正規のコードをサポート?
99
+ GitHub の [Issues](https://github.com/chocoby/jp_prefecture/issues) を参照してください。
97
100
 
98
101
  ## Contributing
99
102
 
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.version = JpPrefecture::VERSION
17
17
 
18
18
  gem.add_development_dependency "rake"
19
- gem.add_development_dependency "rspec", "~> 2.12.0"
19
+ gem.add_development_dependency "rspec", "~> 2.13.0"
20
20
  gem.add_development_dependency "activerecord", ">= 3.2.0"
21
21
  gem.add_development_dependency "sqlite3"
22
22
  end
@@ -13,7 +13,7 @@ module JpPrefecture
13
13
  # p = Place.new
14
14
  # p.prefecture_code = 1
15
15
  # p.prefecture
16
- # # => #<JpPrefecture::Prefecture:0x007fd0a3d10f30 @code=1, @name="北海道">
16
+ # # => #<JpPrefecture::Prefecture:0x007fd0a3d10f30 @code=1, @name="北海道", @name_e="Hokkaido">
17
17
  #
18
18
  # 生成するメソッド名は method_name で指定する:
19
19
  #
@@ -25,7 +25,7 @@ module JpPrefecture
25
25
  # p = Place.new
26
26
  # p.prefecture_code = 1
27
27
  # p.pref
28
- # # => #<JpPrefecture::Prefecture:0x007fcb8444dcc8 @code=1, @name="北海道">
28
+ # # => #<JpPrefecture::Prefecture:0x007fcb8444dcc8 @code=1, @name="北海道", @name_e="Hokkaido">
29
29
  #
30
30
  # @param [Symbol] column_name 変換対象のカラム
31
31
  # @option options [Symbol] :method_name 生成するメソッド名。デフォルト: +:prefecture+
@@ -5,53 +5,53 @@ module JpPrefecture
5
5
  # JIS X 0402 で定義されている都道府県コードと都道府県名をベースに
6
6
  # コードがゼロから始まるもの(09 など)を 1 ケタにしたもの
7
7
  PREFECTURE_CODE_NAME = {
8
- 1 => '北海道',
9
- 2 => '青森県',
10
- 3 => '岩手県',
11
- 4 => '宮城県',
12
- 5 => '秋田県',
13
- 6 => '山形県',
14
- 7 => '福島県',
15
- 8 => '茨城県',
16
- 9 => '栃木県',
17
- 10 => '群馬県',
18
- 11 => '埼玉県',
19
- 12 => '千葉県',
20
- 13 => '東京都',
21
- 14 => '神奈川県',
22
- 15 => '新潟県',
23
- 16 => '富山県',
24
- 17 => '石川県',
25
- 18 => '福井県',
26
- 19 => '山梨県',
27
- 20 => '長野県',
28
- 21 => '岐阜県',
29
- 22 => '静岡県',
30
- 23 => '愛知県',
31
- 24 => '三重県',
32
- 25 => '滋賀県',
33
- 26 => '京都府',
34
- 27 => '大阪府',
35
- 28 => '兵庫県',
36
- 29 => '奈良県',
37
- 30 => '和歌山県',
38
- 31 => '鳥取県',
39
- 32 => '島根県',
40
- 33 => '岡山県',
41
- 34 => '広島県',
42
- 35 => '山口県',
43
- 36 => '徳島県',
44
- 37 => '香川県',
45
- 38 => '愛媛県',
46
- 39 => '高知県',
47
- 40 => '福岡県',
48
- 41 => '佐賀県',
49
- 42 => '長崎県',
50
- 43 => '熊本県',
51
- 44 => '大分県',
52
- 45 => '宮崎県',
53
- 46 => '鹿児島県',
54
- 47 => '沖縄県'
8
+ 1 => { name: '北海道', name_e: 'Hokkaido' },
9
+ 2 => { name: '青森県', name_e: 'Aomori' },
10
+ 3 => { name: '岩手県', name_e: 'Iwate' },
11
+ 4 => { name: '宮城県', name_e: 'Miyagi' },
12
+ 5 => { name: '秋田県', name_e: 'Akita' },
13
+ 6 => { name: '山形県', name_e: 'Yamagata' },
14
+ 7 => { name: '福島県', name_e: 'Fukushima' },
15
+ 8 => { name: '茨城県', name_e: 'Ibaraki' },
16
+ 9 => { name: '栃木県', name_e: 'Tochigi' },
17
+ 10 => { name: '群馬県', name_e: 'Gunma' },
18
+ 11 => { name: '埼玉県', name_e: 'Saitama' },
19
+ 12 => { name: '千葉県', name_e: 'Chiba' },
20
+ 13 => { name: '東京都', name_e: 'Tokyo' },
21
+ 14 => { name: '神奈川県', name_e: 'Kanagawa' },
22
+ 15 => { name: '新潟県', name_e: 'Niigata' },
23
+ 16 => { name: '富山県', name_e: 'Toyama' },
24
+ 17 => { name: '石川県', name_e: 'Ishikawa' },
25
+ 18 => { name: '福井県', name_e: 'Fukui' },
26
+ 19 => { name: '山梨県', name_e: 'Yamanashi' },
27
+ 20 => { name: '長野県', name_e: 'Nagano' },
28
+ 21 => { name: '岐阜県', name_e: 'Gifu' },
29
+ 22 => { name: '静岡県', name_e: 'Shizuoka' },
30
+ 23 => { name: '愛知県', name_e: 'Aichi' },
31
+ 24 => { name: '三重県', name_e: 'Mie' },
32
+ 25 => { name: '滋賀県', name_e: 'Shiga' },
33
+ 26 => { name: '京都府', name_e: 'Kyoto' },
34
+ 27 => { name: '大阪府', name_e: 'Osaka' },
35
+ 28 => { name: '兵庫県', name_e: 'Hyogo' },
36
+ 29 => { name: '奈良県', name_e: 'Nara' },
37
+ 30 => { name: '和歌山県', name_e: 'Wakayama' },
38
+ 31 => { name: '鳥取県', name_e: 'Tottori' },
39
+ 32 => { name: '島根県', name_e: 'Shimane' },
40
+ 33 => { name: '岡山県', name_e: 'Okayama' },
41
+ 34 => { name: '広島県', name_e: 'Hiroshima' },
42
+ 35 => { name: '山口県', name_e: 'Yamaguchi' },
43
+ 36 => { name: '徳島県', name_e: 'Tokushima' },
44
+ 37 => { name: '香川県', name_e: 'Kagawa' },
45
+ 38 => { name: '愛媛県', name_e: 'Ehime' },
46
+ 39 => { name: '高知県', name_e: 'Kochi' },
47
+ 40 => { name: '福岡県', name_e: 'Fukuoka' },
48
+ 41 => { name: '佐賀県', name_e: 'Saga' },
49
+ 42 => { name: '長崎県', name_e: 'Nagasaki' },
50
+ 43 => { name: '熊本県', name_e: 'Kumamoto' },
51
+ 44 => { name: '大分県', name_e: 'Oita' },
52
+ 45 => { name: '宮崎県', name_e: 'Miyazaki' },
53
+ 46 => { name: '鹿児島県', name_e: 'Kagoshima' },
54
+ 47 => { name: '沖縄県', name_e: 'Okinawa' },
55
55
  }
56
56
  end
57
57
  end
@@ -6,19 +6,23 @@ module JpPrefecture
6
6
  class Prefecture
7
7
  include JpPrefecture::Mapping
8
8
 
9
- attr_accessor :code, :name
9
+ attr_accessor :code, :name, :name_e
10
10
 
11
11
  # 配列から都道府県クラスを生成
12
12
  #
13
13
  # @example
14
14
  # # コード/名前から都道府県クラスを生成
15
- # JpPrefecture::Prefecture.build [1, '北海道']
15
+ # JpPrefecture::Prefecture.build 1, '北海道', 'Hokkaido'
16
16
  #
17
- # @param pref [Array] コード/名前の配列
18
- def self.build(pref)
17
+ # @param pref [Integer] 都道府県コード
18
+ # @param name [String] 都道府県名
19
+ # @param name_e [String] 都道府県名(英語表記)
20
+ def self.build(code, name, name_e)
19
21
  p = self.new
20
- p.code = pref[0]
21
- p.name = pref[1]
22
+
23
+ p.code = code
24
+ p.name = name
25
+ p.name_e = name_e
22
26
 
23
27
  p
24
28
  end
@@ -32,10 +36,10 @@ module JpPrefecture
32
36
  # @return [JpPrefecture::Prefecture] 都道府県が見つかった場合は都道府県クラス
33
37
  # @return [nil] 都道府県が見つからない場合は nil
34
38
  def self.find(code)
35
- name = PREFECTURE_CODE_NAME[code]
36
- return nil unless name
39
+ names = PREFECTURE_CODE_NAME[code]
40
+ return nil unless names
37
41
 
38
- self.build([code, name])
42
+ self.build(code, names[:name], names[:name_e])
39
43
  end
40
44
 
41
45
 
@@ -48,10 +52,14 @@ module JpPrefecture
48
52
  # # collection_select で選択肢を生成
49
53
  # f.collection_select :prefecture_code, JpPrefecture::Prefecture.all, :code, :name
50
54
  #
55
+ # # collection_select で選択肢を生成(英語表記)
56
+ # f.collection_select :prefecture_code, JpPrefecture::Prefecture.all, :code, :name_e
57
+ #
51
58
  # @return [Array] 都道府県クラスの配列
52
59
  def self.all
53
60
  PREFECTURE_CODE_NAME.map do |pref|
54
- self.build(pref)
61
+ names = pref[1]
62
+ self.build(pref[0], names[:name], names[:name_e])
55
63
  end
56
64
  end
57
65
  end
@@ -1,3 +1,3 @@
1
1
  module JpPrefecture
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -3,9 +3,10 @@ require 'spec_helper'
3
3
 
4
4
  describe JpPrefecture::Prefecture do
5
5
  describe '.build' do
6
- let(:pref) { JpPrefecture::Prefecture.build([1, '北海道']) }
6
+ let(:pref) { JpPrefecture::Prefecture.build(1, '北海道', 'Hokkaido') }
7
7
  it { pref.code.should eq 1 }
8
8
  it { pref.name.should eq '北海道' }
9
+ it { pref.name_e.should eq 'Hokkaido' }
9
10
  end
10
11
 
11
12
  describe '.find' do
@@ -13,6 +14,7 @@ describe JpPrefecture::Prefecture do
13
14
  let(:pref) { JpPrefecture::Prefecture.find(1) }
14
15
  it { pref.code.should eq 1 }
15
16
  it { pref.name.should eq '北海道' }
17
+ it { pref.name_e.should eq 'Hokkaido' }
16
18
  end
17
19
 
18
20
  context '都道府県が見つからなかった場合' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jp_prefecture
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-28 00:00:00.000000000 Z
12
+ date: 2013-06-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 2.12.0
37
+ version: 2.13.0
38
38
  type: :development
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: 2.12.0
45
+ version: 2.13.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: activerecord
48
48
  requirement: !ruby/object:Gem::Requirement