- Notifications
You must be signed in to change notification settings - Fork32
random Japanese name and address generator
License
willnet/gimei
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
gimei は、日本人の名前や、日本の住所をランダムに返すライブラリです。テストの時などに使います。似たようなライブラリにfakerがあります。fakerはとても優れたライブラリで、多言語対応もしていますが、ふりがな(フリガナ)は流石に対応していません。gimei はふりがな(及びフリガナ)に対応しています。
下記のように使います。
gimei=Gimei.namegimei.kanji#=> "斎藤 陽菜"gimei.hiragana#=> "さいとう はるな"gimei.katakana#=> "サイトウ ハルナ"gimei.romaji#=> "Haruna Saitou"gimei.gender#=> :femalegimei.male?#=> falsegimei.female?#=> truegimei.last.kanji#=> "斎藤"gimei.last.hiragana#=> "さいとう"gimei.last.katakana#=> "サイトウ"gimei.last.romaji#=> "Saitou"gimei.first.kanji#=> "陽菜"gimei.first.hiragana#=> "はるな"gimei.first.katakana#=> "ハルナ"gimei.first.romaji#=> "Haruna"
gimei.last
,gimei.first
の代わりに、gimei.family
,gimei.given
を用いることもできます。
gimei.family.kanji#=> "斎藤"gimei.family.hiragana#=> "さいとう"gimei.family.katakana#=> "サイトウ"gimei.family.romaji#=> "Saitou"gimei.given.kanji#=> "陽菜"gimei.given.hiragana#=> "はるな"gimei.given.katakana#=> "ハルナ"gimei.given.romaji#=> "Haruna"
下記のように男性/女性の名前を返すことを明示的に指定できます。Gimei.name
の場合は男女の名前を等確率で返します。
gimei=Gimei.malegimei.male?#=> truegimei.female?#=> falsegimei.gender#=> :malegimei.kanji#=> "小林 顕士"gimei=Gimei.femalegimei.male?#=> falsegimei.female?#=> truegimei.gender#=> :femalegimei.kanji#=> "根本 彩世"
漢字、ひらがな、カタカナ、ローマ字どれか一種類だけ取得できればよい場合には、下記のように短縮して書くことも出来ます。
Gimei.kanji#=> "伊藤 結衣"Gimei.hiragana#=> "いとう みさき"Gimei.katakana#=> "タカハシ ユイナ"Gimei.romaji#=> "Miki Obara"Gimei.last.kanji#=> "清水"Gimei.last.hiragana#=> "いとう"Gimei.last.katakana#=> "コバヤシ"Gimei.last.romaji#=> "Wakabayashi"Gimei.first.kanji#=> "結菜"Gimei.first.hiragana#=> "ここあ"Gimei.first.katakana#=> "ヤマト"Gimei.first.romaji#=> "Noriyuki"Gimei.family.kanji#=> "黒沢"Gimei.family.hiragana#=> "いずみ"Gimei.family.katakana#=> "エノモト"Gimei.family.romaji#=> "Okada"Gimei.given.kanji#=> "航"Gimei.given.hiragana#=> "まさみつ"Gimei.given.katakana#=> "ユカ"Gimei.given.romaji#=> "Haruto"
同じ名前を二度取得したくない場合には、以下のようにunique
を挟みます。次のようにすると、利用した名前をGimei内で保持することで必ず一意な名前を返すようにできます。
Gimei.unique.name
上記の場合は、フルネームの漢字が一意であることを保証します。つまり、次のように姓や名の単位では重複することもありえます。
Gimei.unique.name.kanji#=> "前島 真一"Gimei.unique.name.kanji#=> "神谷 真一"Gimei.unique.name.kanji#=> "前島 太郎"
これを避けたいときは次のようにlast
やfirst
を利用してください。これは姓や名の単位で一意な名前を返します。
Gimei.unique.lastGimei.unique.first
この場合でも、ふりがな(フリガナ)の単位では重複することがあります。
Gimei.unique.first.hiragana#=> "しんいち"Gimei.unique.first.hiragana#=> "しんいち"
もし名前の候補が枯渇するなど、一意な名前を返せない場合はエラーになります。
これまで利用した名前のリストを消去したい場合は、次のようにします。
Gimei.unique.clear# 全体を消去Gimei.unique.clear(:name)# Gimei.unique.name の結果を消去Gimei.unique.clear(:first)# Gimei.unique.first の結果を消去
次のメソッドで生成された名前はGimei.unique.clear(:name)
で消去します。
Gimei.unique.male
Gimei.unique.female
Gimei.unique.kanji
出力される名前の候補となるデータはlib/data/names.yml
にあるので、必要であればファイルを修正してください。
バージョン0.2.0からは、住所情報も取得できるようになりました。都道府県、区、市、町を組み合わせた住所情報を漢字、ひらがな、カタカナで取得することができます。
address=Gimei.addressaddress.kanji# => 岡山県大島郡大和村稲木町address.to_s# => 岡山県大島郡大和村稲木町address.hiragana# => おかやまけんおおしまぐんやまとそんいなぎちょうaddress.katakana# => オカヤマケンオオシマグンヤマトソンイナギチョウaddress.romaji# => Okayamaken Ooshimagunyamatoson Inagichoaddress.prefecture.kanji# => 岡山県address.prefecture.to_s# => 岡山県address.prefecture.hiragana# => おかやまけんaddress.prefecture.katakana# => オカヤマケンaddress.prefecture.romaji# => Okayamakenaddress.city.kanji# => 大島郡大和村address.city.to_s# => 大島郡大和村address.city.hiragana# => おおしまぐんやまとそんaddress.city.katakana# => オオシマグンヤマトソンaddress.city.romaji# => Ooshimagunyamatosonaddress.town.kanji# => 稲木町address.town.to_s# => 稲木町address.town.hiragana# => いなぎちょうaddress.town.katakana# => イナギチョウaddress.town.romaji# => Inagicho
省略形も用意しています。
Gimei.prefecture.kanji# => 青森県Gimei.prefecture.to_s# => 滋賀県Gimei.prefecture.hiragana# => やまがたけんGimei.prefecture.katakana# => チバケンGimei.prefecture.romaji# => WakayamakenGimei.city.kanji# => 利根郡昭和村Gimei.city.hiragana# => うべしGimei.city.katakana# => カモグンヤオツチョウGimei.city.romaji# => ItanogunaizumichouGimei.town.kanji# => 竹野Gimei.town.to_s# => 富久山町南小泉Gimei.town.hiragana# => じょうしんでんGimei.town.katakana# => イケナイGimei.town.romaji# => Heisei
同じ住所を二度取得したくない場合には、以下のようにunique
を挟みます。次のようにすると、利用した住所をGimei内で保持することで必ず一意な名前を返すようにできます。
address=Gimei.unique.address
上記の場合は、住所全体が一意であることを保証します。つまり、次のように県や市町村の単位では重複することもありえます。
Gimei.unique.address.prefecture.kanji#=> 東京都Gimei.unique.address.prefecture.kanji#=> 東京都
もし県や市町村の単位で一意であることを保証したいのであれば、次のように短縮形を使います。
Gimei.unique.prefecture.kanji#=> 東京都Gimei.unique.prefecture.kanji#=> 神奈川県
もし住所の候補が枯渇するなど、一意な名前を返せない場合はエラーになります。
これまで利用した住所のリストを消去したい場合は、次のようにします。
Gimei.unique.clear# 全体を消去Gimei.unique.clear(:address)# Gimei.unique.address の結果を消去Gimei.unique.clear(:prefecture)# Gimei.unique.prefecture の結果を消去
出力される住所の候補となるデータはlib/data/addresses.yml
にあるので、必要であればファイルを修正してください。
下記のように乱数生成器を設定することで、再現性のあるランダムデータを生成できます。
Gimei.config.rng=Random.new(42)Gimei.name.kanji#=> "飯島 誠吾"Gimei.address.kanji#=> "熊本県日進市東場内"Gimei.config.rng=Random.new(42)Gimei.name.kanji#=> "飯島 誠吾"Gimei.address.kanji#=> "熊本県日進市東場内"
Ruby 2.3以上
- .NETmatarillo/dot-gimei
- Elixirma2gedev/gimei_ex
- Emacs Lispgongo/emacs-gimei
- Gomattn/go-gimei
- Javamoznion/gimei-java
- Node.jssabakan404/node-gimei
- Perlyoupong/Data-Gimei
- Pythonnabetama/gimei
- TypeScriptabcb2/type-gimei
Add this line to your application's Gemfile:
gem 'gimei'
And then execute:
$ bundle
Or install it yourself as:
$ gem install gimei
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
About
random Japanese name and address generator
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.