gimei 0.2.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6fd8b6ca2ca9d8bdf3bbac3fcd6ef5975eb79696
4
- data.tar.gz: d74ef4820a28495ba91fb6142d576d7c451b9a62
3
+ metadata.gz: 1605b3bfbb543f4f1a38f3400377fe855ea2bc0d
4
+ data.tar.gz: c1781dab9fe9506476f85a9254796f00b042d912
5
5
  SHA512:
6
- metadata.gz: 8680e297e54c961c8b4a0363ee84fa432dec1619ebe44ce58e1357efe2bb91396cfcbf7863a55e108d660cfbef6f84d6a2b1ce4511ce558d3c764eb865b8f43b
7
- data.tar.gz: a118471e381eed4dc6a13a7ab8d88a2978db4785c8f1cd4c8146f2f80bcffa485a5f0c3bd2e374b2acb70b3d0541c44b8b8ff6202a70e07b695fd238bf3fc817
6
+ metadata.gz: 47f890c91bfc8b1b9a73a7fbe4d9d1b39880da1d7dca12c44e87676ddcfd7b0b0acca8dc2b507929154a4baae87c6288c42723db67204c3cdfdc23f87eb95c43
7
+ data.tar.gz: e113e8752c3a5c2def53b8c3bc0530b30efbdc705f79f01e385937eb7438156aaedc9c46fe77c420f6d9f77801b51cafcd1cb851005a238a736cb857d39cc7a7
@@ -2,5 +2,9 @@ language: ruby
2
2
  rvm:
3
3
  - "1.9.3"
4
4
  - "2.0.0"
5
- - "2.1.0"
6
-
5
+ - "2.1.10"
6
+ - "2.2.7"
7
+ - "2.3.4"
8
+ - "2.4.1"
9
+ before_install:
10
+ - gem update bundler
@@ -1,3 +1,7 @@
1
+ ## 0.3.0
2
+
3
+ * ローマ字対応 - [@takkanm](https://github.com/takkanm)
4
+
1
5
  ## 0.2.0
2
6
 
3
7
  * 住所対応 - [@miyohide](https://github.com/miyohide)
@@ -5,7 +9,7 @@
5
9
  ## 0.1.0
6
10
 
7
11
  * サンプルデータの拡充 - [@2celeb](https://github.com/2celeb)
8
- * `Gimei.male`, `Gimei.female` 等の男女指定用のメソッドを追加 - [@willnet](https://github.com/willnet)
12
+ * `Gimei.male`, `Gimei.female` 等の男女指定用のメソッドを追加 - [@2celeb](https://github.com/2celeb)
9
13
 
10
14
  ```ruby
11
15
  gimei = Gimei.male
data/README.md CHANGED
@@ -1,11 +1,11 @@
1
1
  # Gimei
2
2
 
3
- [![Build Status](https://travis-ci.org/willnet/gimei.png)](https://travis-ci.org/willnet/gimei)
4
- [![Coverage Status](https://coveralls.io/repos/willnet/gimei/badge.png)](https://coveralls.io/r/willnet/gimei)
5
- [![Gem Version](https://badge.fury.io/rb/gimei.png)](http://badge.fury.io/rb/gimei)
6
- [![endorse](https://api.coderwall.com/willnet/endorsecount.png)](https://coderwall.com/willnet)
3
+ [![Travis](https://img.shields.io/travis/willnet/gimei.svg)](https://travis-ci.org/willnet/gimei)
4
+ [![Coveralls](https://coveralls.io/repos/willnet/gimei/badge.svg)](https://coveralls.io/r/willnet/gimei)
5
+ [![Code Climate](https://codeclimate.com/github/willnet/gimei/badges/gpa.svg)](https://codeclimate.com/github/willnet/gimei)
6
+ [![Gem](https://img.shields.io/gem/v/gimei.svg)](https://rubygems.org/gems/gimei)
7
7
 
8
- gimei は、日本人の名前や、日本の住所をランダムに返すライブラリです。テストの時などに使います。似たようなライブラリに[faker](https://github.com/stympy/faker)があります。[faker](https://github.com/stympy/faker)はとても優れたライブラリで、多言語対応もしていますが、ふりがな(フリガナ)は流石に対応していません。gimei ふりがな(及びフリガナ)に対応しています。
8
+ gimei は、日本人の名前や、日本の住所をランダムに返すライブラリです。テストの時などに使います。似たようなライブラリに[faker](https://github.com/stympy/faker)があります。[faker](https://github.com/stympy/faker)はとても優れたライブラリで、多言語対応もしていますが、ふりがな(フリガナ)は流石に対応していません。gimei はふりがな(及びフリガナ)に対応しています。
9
9
 
10
10
 
11
11
  ## 使い方
@@ -16,43 +16,49 @@ gimei は、日本人の名前や、日本の住所をランダムに返すラ
16
16
 
17
17
  ```ruby
18
18
  gimei = Gimei.name
19
- gimei.kanji #=> "斎藤 陽菜"
20
- gimei.hiragana #=> "さいとう はるな"
21
- gimei.katakana #=> "サイトウ ハルナ"
22
- gimei.last.kanji #=> "斎藤"
23
- gimei.last.hiragana #=> "さいとう"
24
- gimei.last.katakana #=> "サイトウ"
25
- gimei.first.kanji #=> "陽菜"
19
+ gimei.kanji #=> "斎藤 陽菜"
20
+ gimei.hiragana #=> "さいとう はるな"
21
+ gimei.katakana #=> "サイトウ ハルナ"
22
+ gimei.romaji #=> "Haruna Saitou"
23
+ gimei.last.kanji #=> "斎藤"
24
+ gimei.last.hiragana #=> "さいとう"
25
+ gimei.last.katakana #=> "サイトウ"
26
+ gimei.last.romaji #=> "Saitou"
27
+ gimei.first.kanji #=> "陽菜"
26
28
  gimei.first.hiragana #=> "はるな"
27
29
  gimei.first.katakana #=> "ハルナ"
30
+ gimei.first.romaji #=> "Haruna"
28
31
  ```
29
32
 
30
33
  下記のように男性/女性の名前を返すことを明示的に指定できます。`Gimei.name` の場合は男女の名前を等確率で返します。
31
34
 
32
35
  ```ruby
33
36
  gimei = Gimei.male
34
- gimei.male? #=> true
37
+ gimei.male? #=> true
35
38
  gimei.female? #=> false
36
- gimei.kanji #=> "小林 顕士"
39
+ gimei.kanji #=> "小林 顕士"
37
40
 
38
41
  gimei = Gimei.female
39
- gimei.male? #=> false
42
+ gimei.male? #=> false
40
43
  gimei.female? #=> true
41
- gimei.kanji #=> "根本 彩世"
44
+ gimei.kanji #=> "根本 彩世"
42
45
  ```
43
46
 
44
- 漢字、ひらがな、カタカナどれか一種類だけ取得できればよい場合には、下記のように短縮して書くことも出来ます。
47
+ 漢字、ひらがな、カタカナ、ローマ字どれか一種類だけ取得できればよい場合には、下記のように短縮して書くことも出来ます。
45
48
 
46
49
  ```ruby
47
- Gimei.kanji #=> "伊藤 結衣"
48
- Gimei.hiragana #=> "いとう みさき"
49
- Gimei.katakana #=> "タカハシ ユイナ"
50
- Gimei.last.kanji #=> "清水"
51
- Gimei.last.hiragana #=> "いとう"
52
- Gimei.last.katakana #=> "コバヤシ"
53
- Gimei.first.kanji #=> "結菜"
50
+ Gimei.kanji #=> "伊藤 結衣"
51
+ Gimei.hiragana #=> "いとう みさき"
52
+ Gimei.katakana #=> "タカハシ ユイナ"
53
+ Gimei.romaji #=> "Miki Obara"
54
+ Gimei.last.kanji #=> "清水"
55
+ Gimei.last.hiragana #=> "いとう"
56
+ Gimei.last.katakana #=> "コバヤシ"
57
+ Gimei.last.romaji #=> "Wakabayashi"
58
+ Gimei.first.kanji #=> "結菜"
54
59
  Gimei.first.hiragana #=> "ここあ"
55
60
  Gimei.first.katakana #=> "ヤマト"
61
+ Gimei.first.romaji #=> "Noriyuki"
56
62
  ```
57
63
 
58
64
  出力される名前の候補となるデータは `lib/data/names.yml` にあるので、必要であればファイルを修正してください。
@@ -67,21 +73,25 @@ address.kanji # => 岡山県大島郡大和村稲木町
67
73
  address.to_s # => 岡山県大島郡大和村稲木町
68
74
  address.hiragana # => おかやまけんおおしまぐんやまとそんいなぎちょう
69
75
  address.katakana # => オカヤマケンオオシマグンヤマトソンイナギチョウ
76
+ address.romaji # => Okayamaken Ooshimagunyamatoson Inagicho
70
77
 
71
78
  address.prefecture.kanji # => 岡山県
72
79
  address.prefecture.to_s # => 岡山県
73
80
  address.prefecture.hiragana # => おかやまけん
74
81
  address.prefecture.katakana # => オカヤマケン
82
+ address.prefecture.romaji # => Okayamaken
75
83
 
76
84
  address.city.kanji # => 大島郡大和村
77
85
  address.city.to_s # => 大島郡大和村
78
86
  address.city.hiragana # => おおしまぐんやまとそん
79
87
  address.city.katakana # => オオシマグンヤマトソン
88
+ address.city.romaji # => Ooshimagunyamatoson
80
89
 
81
90
  address.town.kanji # => 稲木町
82
91
  address.town.to_s # => 稲木町
83
92
  address.town.hiragana # => いなぎちょう
84
93
  address.town.katakana # => イナギチョウ
94
+ address.town.romaji # => Inagicho
85
95
  ```
86
96
 
87
97
  省略形も用意しています。
@@ -91,19 +101,40 @@ Gimei.prefecture.kanji # => 青森県
91
101
  Gimei.prefecture.to_s # => 滋賀県
92
102
  Gimei.prefecture.hiragana # => やまがたけん
93
103
  Gimei.prefecture.katakana # => チバケン
104
+ Gimei.prefecture.romaji # => Wakayamaken
94
105
 
95
106
  Gimei.city.kanji # => 利根郡昭和村
96
107
  Gimei.city.hiragana # => うべし
97
108
  Gimei.city.katakana # => カモグンヤオツチョウ
109
+ Gimei.city.romaji # => Itanogunaizumichou
98
110
 
99
111
  Gimei.town.kanji # => 竹野
100
112
  Gimei.town.to_s # => 富久山町南小泉
101
113
  Gimei.town.hiragana # => じょうしんでん
102
114
  Gimei.town.katakana # => イケナイ
115
+ Gimei.town.romaji # => Heisei
103
116
  ```
104
117
 
105
118
  出力される住所の候補となるデータは `lib/data/addresses.yml` にあるので、必要であればファイルを修正してください。
106
119
 
120
+ ## Supported versions
121
+
122
+ - 1.9.3
123
+ - 2.0.0
124
+ - 2.1.x
125
+ - 2.2.x
126
+ - 2.3.x
127
+ - 2.4.x
128
+
129
+ ## 他言語による実装
130
+
131
+ - [mattn/go-gimei](https://github.com/mattn/go-gimei)
132
+ - [moznion/gimei-java](https://github.com/moznion/gimei-java)
133
+ - [nabetama/gimei](https://github.com/nabetama/gimei)
134
+ - [gongo/emacs-gimei](https://github.com/gongo/emacs-gimei)
135
+ - [ma2gedev/gimei_ex](https://github.com/ma2gedev/gimei_ex)
136
+ - [demiglacesource/node-gimei](https://github.com/demiglacesource/node-gimei)
137
+
107
138
  ## Installation
108
139
 
109
140
  Add this line to your application's Gemfile:
@@ -0,0 +1 @@
1
+ theme: jekyll-theme-cayman
@@ -17,6 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ["lib"]
20
+ gem.add_dependency('romaji')
20
21
  gem.add_development_dependency('rake')
21
22
  gem.add_development_dependency('moji')
22
23
  gem.add_development_dependency('minitest')
@@ -11,7 +11,7 @@ class Gimei
11
11
  ADDRESSES = YAML.load_file(File.expand_path(File.join('..', 'data', 'addresses.yml'), __FILE__))
12
12
  GENDER = [:male, :female].freeze
13
13
 
14
- def_delegators :@name, :kanji, :hiragana, :katakana, :first, :last, :male?, :female?
14
+ def_delegators :@name, :kanji, :hiragana, :katakana, :first, :last, :male?, :female?, :romaji
15
15
  def_delegators :@address, :prefecture, :city, :town
16
16
  alias_method :to_s, :kanji
17
17
 
@@ -20,7 +20,7 @@ class Gimei
20
20
  class << self
21
21
  extend Forwardable
22
22
 
23
- def_delegators :name, :kanji, :hiragana, :katakana, :first, :last
23
+ def_delegators :name, :kanji, :hiragana, :katakana, :first, :last, :romaji
24
24
  def_delegators Gimei::Name, :male, :female
25
25
  def_delegators :address, :prefecture, :city, :town
26
26
 
@@ -19,6 +19,10 @@ class Gimei::Address
19
19
  "#{prefecture.katakana}#{city.katakana}#{town.katakana}"
20
20
  end
21
21
 
22
+ def romaji
23
+ "#{prefecture.romaji} #{city.romaji} #{town.romaji}"
24
+ end
25
+
22
26
  alias_method :to_s, :kanji
23
27
 
24
28
  class Prefecture
@@ -34,6 +38,10 @@ class Gimei::Address
34
38
  @prefectures[2]
35
39
  end
36
40
 
41
+ def romaji
42
+ Romaji.kana2romaji(hiragana).capitalize
43
+ end
44
+
37
45
  def initialize
38
46
  @prefectures = Gimei::ADDRESSES['addresses']['prefecture'].sample
39
47
  end
@@ -54,6 +62,10 @@ class Gimei::Address
54
62
  @cities[2]
55
63
  end
56
64
 
65
+ def romaji
66
+ Romaji.kana2romaji(hiragana).capitalize
67
+ end
68
+
57
69
  def initialize
58
70
  @cities = Gimei::ADDRESSES['addresses']['city'].sample
59
71
  end
@@ -74,6 +86,10 @@ class Gimei::Address
74
86
  @towns[2]
75
87
  end
76
88
 
89
+ def romaji
90
+ Romaji.kana2romaji(hiragana).capitalize
91
+ end
92
+
77
93
  def initialize
78
94
  @towns = Gimei::ADDRESSES['addresses']['town'].sample
79
95
  end
@@ -1,9 +1,11 @@
1
+ require 'romaji'
2
+
1
3
  class Gimei::Name
2
4
  attr_reader :first, :last
3
5
 
4
6
  class << self
5
7
  extend Forwardable
6
- def_delegators :new, :kanji, :hiragana, :katakana, :first, :last
8
+ def_delegators :new, :kanji, :hiragana, :katakana, :first, :last, :romaji
7
9
 
8
10
  def male
9
11
  new(:male)
@@ -32,6 +34,10 @@ class Gimei::Name
32
34
  "#{last.katakana} #{first.katakana}"
33
35
  end
34
36
 
37
+ def romaji
38
+ "#{first.romaji} #{last.romaji}"
39
+ end
40
+
35
41
  def male?
36
42
  @gender == :male
37
43
  end
@@ -53,9 +59,12 @@ class Gimei::Name
53
59
  end
54
60
  end
55
61
 
62
+ extend Forwardable
63
+ def_delegators :@name, :kanji, :hiragana, :katakana, :to_s, :romaji
64
+
56
65
  def initialize(gender = nil)
57
66
  @gender = gender || Gimei::GENDER.sample
58
- @name = Gimei::NAMES['first_name'][@gender.to_s].sample
67
+ @name = NameWord.new(Gimei::NAMES['first_name'][@gender.to_s].sample)
59
68
  end
60
69
 
61
70
  def male?
@@ -65,25 +74,20 @@ class Gimei::Name
65
74
  def female?
66
75
  @gender == :female
67
76
  end
77
+ end
68
78
 
69
- def kanji
70
- @name[0]
71
- end
72
-
73
- def hiragana
74
- @name[1]
75
- end
79
+ class Last
80
+ extend Forwardable
81
+ def_delegators :@name, :kanji, :hiragana, :katakana, :to_s, :romaji
76
82
 
77
- def katakana
78
- @name[2]
83
+ def initialize
84
+ @name = NameWord.new(Gimei::NAMES['last_name'].sample)
79
85
  end
80
-
81
- alias_method :to_s, :kanji
82
86
  end
83
87
 
84
- class Last
85
- def initialize
86
- @name = Gimei::NAMES['last_name'].sample
88
+ class NameWord
89
+ def initialize(name)
90
+ @name = name
87
91
  end
88
92
 
89
93
  def kanji
@@ -98,6 +102,10 @@ class Gimei::Name
98
102
  @name[2]
99
103
  end
100
104
 
105
+ def romaji
106
+ Romaji.kana2romaji(hiragana).capitalize
107
+ end
108
+
101
109
  alias_method :to_s, :kanji
102
110
  end
103
111
  end
@@ -1,3 +1,3 @@
1
1
  class Gimei
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -2,45 +2,63 @@
2
2
  require_relative 'spec_helper'
3
3
 
4
4
  describe Gimei do
5
+ describe '#kanji and #to_s' do
6
+ it '全角文字が返ること' do
7
+ Gimei.address.kanji.must_match(/\A[#{Moji.zen}]+\z/)
8
+ Gimei.address.to_s.must_match(/\A[#{Moji.zen}]+\z/)
9
+ Gimei.address.prefecture.kanji.must_match(/\A[#{Moji.zen}]+\z/)
10
+ Gimei.address.prefecture.to_s.must_match(/\A[#{Moji.zen}]+\z/)
11
+ Gimei.address.city.kanji.must_match(/\A[#{Moji.zen}]+\z/)
12
+ Gimei.address.city.to_s.must_match(/\A[#{Moji.zen}]+\z/)
13
+ Gimei.address.town.kanji.must_match(/\A[#{Moji.zen}]+\z/)
14
+ Gimei.address.town.to_s.must_match(/\A[#{Moji.zen}]+\z/)
5
15
 
6
- it '全角文字が返ること' do
7
- Gimei.address.kanji.must_match /\A[#{Moji.zen}]+\z/
8
- Gimei.address.to_s.must_match /\A[#{Moji.zen}]+\z/
9
- Gimei.address.prefecture.kanji.must_match /\A[#{Moji.zen}]+\z/
10
- Gimei.address.prefecture.to_s.must_match /\A[#{Moji.zen}]+\z/
11
- Gimei.address.city.kanji.must_match /\A[#{Moji.zen}]+\z/
12
- Gimei.address.city.to_s.must_match /\A[#{Moji.zen}]+\z/
13
- Gimei.address.town.kanji.must_match /\A[#{Moji.zen}]+\z/
14
- Gimei.address.town.to_s.must_match /\A[#{Moji.zen}]+\z/
15
-
16
- Gimei.prefecture.kanji.must_match /\A[#{Moji.zen}]+\z/
17
- Gimei.prefecture.to_s.must_match /\A[#{Moji.zen}]+\z/
18
- Gimei.city.kanji.must_match /\A[#{Moji.zen}]+\z/
19
- Gimei.city.to_s.must_match /\A[#{Moji.zen}]+\z/
20
- Gimei.town.kanji.must_match /\A[#{Moji.zen}]+\z/
21
- Gimei.town.to_s.must_match /\A[#{Moji.zen}]+\z/
16
+ Gimei.prefecture.kanji.must_match(/\A[#{Moji.zen}]+\z/)
17
+ Gimei.prefecture.to_s.must_match(/\A[#{Moji.zen}]+\z/)
18
+ Gimei.city.kanji.must_match(/\A[#{Moji.zen}]+\z/)
19
+ Gimei.city.to_s.must_match(/\A[#{Moji.zen}]+\z/)
20
+ Gimei.town.kanji.must_match(/\A[#{Moji.zen}]+\z/)
21
+ Gimei.town.to_s.must_match(/\A[#{Moji.zen}]+\z/)
22
+ end
22
23
  end
23
24
 
24
- it 'ひらがなが返ること' do
25
- Gimei.address.hiragana.must_match /\A[\p{hiragana}]+\z/
26
- Gimei.address.prefecture.hiragana.must_match /\A[\p{hiragana}]+\z/
27
- Gimei.address.city.hiragana.must_match /\A[\p{hiragana}]+\z/
28
- Gimei.address.town.hiragana.must_match /\A[\p{hiragana}]+\z/
25
+ describe '#hiragana' do
26
+ it 'ひらがなが返ること' do
27
+ Gimei.address.hiragana.must_match(/\A[\p{hiragana}]+\z/)
28
+ Gimei.address.prefecture.hiragana.must_match(/\A[\p{hiragana}]+\z/)
29
+ Gimei.address.city.hiragana.must_match(/\A[\p{hiragana}]+\z/)
30
+ Gimei.address.town.hiragana.must_match(/\A[\p{hiragana}]+\z/)
29
31
 
30
- Gimei.prefecture.hiragana.must_match /\A[\p{hiragana}]+\z/
31
- Gimei.city.hiragana.must_match /\A[\p{hiragana}]+\z/
32
- Gimei.town.hiragana.must_match /\A[\p{hiragana}]+\z/
32
+ Gimei.prefecture.hiragana.must_match(/\A[\p{hiragana}]+\z/)
33
+ Gimei.city.hiragana.must_match(/\A[\p{hiragana}]+\z/)
34
+ Gimei.town.hiragana.must_match(/\A[\p{hiragana}]+\z/)
35
+ end
33
36
  end
34
37
 
35
- it 'カタカナが返ること' do
36
- Gimei.address.katakana.must_match /\A[\p{katakana}]+\z/
37
- Gimei.address.prefecture.katakana.must_match /\A[\p{katakana}]+\z/
38
- Gimei.address.city.katakana.must_match /\A[\p{katakana}]+\z/
39
- Gimei.address.town.katakana.must_match /\A[\p{katakana}]+\z/
38
+ describe '#katakana' do
39
+ it 'カタカナが返ること' do
40
+ Gimei.address.katakana.must_match(/\A[\p{katakana}]+\z/)
41
+ Gimei.address.prefecture.katakana.must_match(/\A[\p{katakana}]+\z/)
42
+ Gimei.address.city.katakana.must_match(/\A[\p{katakana}]+\z/)
43
+ Gimei.address.town.katakana.must_match(/\A[\p{katakana}]+\z/)
40
44
 
41
- Gimei.prefecture.katakana.must_match /\A[\p{katakana}]+\z/
42
- Gimei.city.katakana.must_match /\A[\p{katakana}]+\z/
43
- Gimei.town.katakana.must_match /\A[\p{katakana}]+\z/
45
+ Gimei.prefecture.katakana.must_match(/\A[\p{katakana}]+\z/)
46
+ Gimei.city.katakana.must_match(/\A[\p{katakana}]+\z/)
47
+ Gimei.town.katakana.must_match(/\A[\p{katakana}]+\z/)
48
+ end
44
49
  end
45
50
 
51
+ describe '#romaji' do
52
+ it 'ローマ字が返ること' do
53
+ Gimei.address.romaji.must_match(/\A[a-zA-Z\s]+\z/)
54
+
55
+ Gimei.address.prefecture.romaji.must_match(/\A[a-zA-Z]+\z/)
56
+ Gimei.address.city.romaji.must_match(/\A[a-zA-Z]+\z/)
57
+ Gimei.address.town.romaji.must_match(/\A[a-zA-Z]+\z/)
58
+
59
+ Gimei.prefecture.romaji.must_match(/\A[a-zA-Z]+\z/)
60
+ Gimei.city.romaji.must_match(/\A[a-zA-Z]+\z/)
61
+ Gimei.town.romaji.must_match(/\A[a-zA-Z]+\z/)
62
+ end
63
+ end
46
64
  end
@@ -104,6 +104,18 @@ describe Gimei do
104
104
  end
105
105
  end
106
106
 
107
+ describe '.romaji' do
108
+ it 'ローマ字とスペースが返ること' do
109
+ Gimei.romaji.must_match(/\A[a-zA-Z\s]+\z/)
110
+ end
111
+ end
112
+
113
+ describe '#romaji' do
114
+ it 'ローマ字とスペースが返ること' do
115
+ Gimei.new.romaji.must_match(/\A[a-zA-Z\s]+\z/)
116
+ end
117
+ end
118
+
107
119
  describe '.address' do
108
120
  it 'Gimei::Address オブジェクトが返ること' do
109
121
  Gimei.address.must_be_instance_of Gimei::Address
@@ -28,37 +28,43 @@ describe Gimei::Name do
28
28
 
29
29
  describe '.kanji' do
30
30
  it '全角文字とスペースが返ること' do
31
- Gimei::Name.kanji.must_match /\A[#{Moji.zen}\s]+\z/
31
+ Gimei::Name.kanji.must_match(/\A[#{Moji.zen}\s]+\z/)
32
32
  end
33
33
  end
34
34
 
35
35
  describe '.hiragana' do
36
36
  it 'ひらがなとスペースが返ること' do
37
- Gimei::Name.hiragana.must_match /\A[\p{hiragana}\s]+\z/
37
+ Gimei::Name.hiragana.must_match(/\A[\p{hiragana}\s]+\z/)
38
38
  end
39
39
  end
40
40
 
41
41
  describe '.katakana' do
42
42
  it 'カタカナとスペースが返ること' do
43
- Gimei::Name.katakana.must_match /\A[\p{katakana}\s]+\z/
43
+ Gimei::Name.katakana.must_match(/\A[\p{katakana}\s]+\z/)
44
+ end
45
+ end
46
+
47
+ describe '.romaji' do
48
+ it 'ローマ字とスペースが返ること' do
49
+ Gimei::Name.romaji.must_match(/\A[a-zA-Z\s]+\z/)
44
50
  end
45
51
  end
46
52
 
47
53
  describe '#kanji' do
48
54
  it '全角文字とスペースが返ること' do
49
- Gimei::Name.new.kanji.must_match /\A[#{Moji.zen}\s]+\z/
55
+ Gimei::Name.new.kanji.must_match(/\A[#{Moji.zen}\s]+\z/)
50
56
  end
51
57
  end
52
58
 
53
59
  describe '#hiragana' do
54
60
  it 'ひらがなとスペースが返ること' do
55
- Gimei::Name.new.hiragana.must_match /\A[\p{hiragana}\s]+\z/
61
+ Gimei::Name.new.hiragana.must_match(/\A[\p{hiragana}\s]+\z/)
56
62
  end
57
63
  end
58
64
 
59
65
  describe '#katakana' do
60
66
  it 'カタカナとスペースが返ること' do
61
- Gimei::Name.new.katakana.must_match /\A[\p{katakana}\s]+\z/
67
+ Gimei::Name.new.katakana.must_match(/\A[\p{katakana}\s]+\z/)
62
68
  end
63
69
  end
64
70
 
@@ -73,6 +79,12 @@ describe Gimei::Name do
73
79
  Gimei::Name.new.last.must_be_instance_of Gimei::Name::Last
74
80
  end
75
81
  end
82
+
83
+ describe '.romaji' do
84
+ it 'ローマ字とスペースが返ること' do
85
+ Gimei::Name.new.romaji.must_match(/\A[a-zA-Z\s]+\z/)
86
+ end
87
+ end
76
88
  end
77
89
 
78
90
  describe Gimei::Name::First do
@@ -102,25 +114,31 @@ describe Gimei::Name::First do
102
114
 
103
115
  describe '#kanji' do
104
116
  it '全角文字が返ること' do
105
- Gimei::Name::First.new.kanji.must_match /\A#{Moji.zen}+\z/
117
+ Gimei::Name::First.new.kanji.must_match(/\A#{Moji.zen}+\z/)
106
118
  end
107
119
  end
108
120
 
109
121
  describe '#hiragana' do
110
122
  it 'ひらがなが返ること' do
111
- Gimei::Name::First.new.hiragana.must_match /\A\p{hiragana}+\z/
123
+ Gimei::Name::First.new.hiragana.must_match(/\A\p{hiragana}+\z/)
112
124
  end
113
125
  end
114
126
 
115
127
  describe '#katakana' do
116
128
  it 'カタカナが返ること' do
117
- Gimei::Name::First.new.katakana.must_match /\A\p{katakana}+\z/
129
+ Gimei::Name::First.new.katakana.must_match(/\A\p{katakana}+\z/)
118
130
  end
119
131
  end
120
132
 
121
133
  describe '#to_s' do
122
134
  it '全角文字が返ること' do
123
- Gimei::Name::First.new.to_s.must_match /\A#{Moji.zen}+\z/
135
+ Gimei::Name::First.new.to_s.must_match(/\A#{Moji.zen}+\z/)
136
+ end
137
+ end
138
+
139
+ describe '#romaji' do
140
+ it 'アルファベットで返ること' do
141
+ Gimei::Name::First.new.romaji.must_match(/\A[a-zA-Z]+\z/)
124
142
  end
125
143
  end
126
144
  end
@@ -130,25 +148,31 @@ describe Gimei::Name::Last do
130
148
 
131
149
  describe '#kanji' do
132
150
  it '全角文字が返ること' do
133
- @name.kanji.must_match /\A#{Moji.zen}+\z/
151
+ @name.kanji.must_match(/\A#{Moji.zen}+\z/)
134
152
  end
135
153
  end
136
154
 
137
155
  describe '#hiragana' do
138
156
  it 'ひらがなが返ること' do
139
- @name.hiragana.must_match /\A\p{hiragana}+\z/
157
+ @name.hiragana.must_match(/\A\p{hiragana}+\z/)
140
158
  end
141
159
  end
142
160
 
143
161
  describe '#katakana' do
144
162
  it 'カタカナが返ること' do
145
- @name.katakana.must_match /\A\p{katakana}+\z/
163
+ @name.katakana.must_match(/\A\p{katakana}+\z/)
146
164
  end
147
165
  end
148
166
 
149
167
  describe '#to_s' do
150
168
  it '全角文字が返ること' do
151
- @name.to_s.must_match /\A#{Moji.zen}+\z/
169
+ @name.to_s.must_match(/\A#{Moji.zen}+\z/)
170
+ end
171
+ end
172
+
173
+ describe '#romaji' do
174
+ it 'アルファベットで返ること' do
175
+ Gimei::Name::First.new.romaji.must_match(/\A[a-z|A-Z]+\z/)
152
176
  end
153
177
  end
154
178
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gimei
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - willnet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-22 00:00:00.000000000 Z
11
+ date: 2017-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: romaji
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rake
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -81,6 +95,7 @@ files:
81
95
  - LICENSE.txt
82
96
  - README.md
83
97
  - Rakefile
98
+ - _config.yml
84
99
  - gimei.gemspec
85
100
  - lib/data/addresses.yml
86
101
  - lib/data/names.yml
@@ -112,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
127
  version: '0'
113
128
  requirements: []
114
129
  rubyforge_project:
115
- rubygems_version: 2.2.2
130
+ rubygems_version: 2.6.13
116
131
  signing_key:
117
132
  specification_version: 4
118
133
  summary: random Japanese name and address generator. support kanji, hiragana, and