forgery_ja 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in forgery_ja.gemspec
4
+ gem 'forgery'
5
+
6
+ group :development, :test do
7
+ gem 'rspec-rails'
8
+
9
+ gem 'guard-bundler'
10
+ gem 'guard-rspec'
11
+
12
+ gem 'libnotify', require: false
13
+ gem 'rb-inotify', require: false
14
+ gem 'rb-fsevent', require: false
15
+ gem 'growl', require: false
16
+ end
data/Guardfile ADDED
@@ -0,0 +1,9 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec', :version => 2 do
5
+ watch(%r{^spec/.+_spec\.rb})
6
+ watch('spec/spec_helper.rb') { "spec" }
7
+ watch(%r{^spec/.+_spec\.rb})
8
+ watch(%r{^lib/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
9
+ end
data/README.markdown ADDED
@@ -0,0 +1,68 @@
1
+ # ForgeryJa
2
+
3
+ Forgeryにおいて日本語のテストデータを作成します
4
+
5
+ ## install
6
+
7
+ Add Gemfile
8
+ <pre><code>gem 'forgery_ja'</code></pre>
9
+
10
+ ## Examples
11
+
12
+ ### Name関連
13
+
14
+ <pre><code>ForgeryJa(:name).full_name # => "山本 健"
15
+ ForgeryJa(:name).full_name(ForgeryJa::HIRA) # => "なかむら しゅん"
16
+ ForgeryJa(:name).full_name(ForgeryJa::KANA) # => "フジタ アマネ"
17
+ ForgeryJa(:name).full_name(ForgeryJa::H_KANA) # => "タマシロ ユズハ" ... half kana
18
+ ForgeryJa(:name).full_name(ForgeryJa::ROMA) # => "suzuki midori"
19
+ ForgeryJa(:name).first_name # => "健"
20
+ ForgeryJa(:name).last_name # => "鈴木"
21
+ ForgeryJa(:name).male_first_name # => "健" ... 男性名
22
+ ForgeryJa(:name).female_first_name # => "千夏" ... 女性名
23
+ ForgeryJa(:name).company_name # => "エンプラス"
24
+ ForgeryJa(:name).job_title # => "医師"
25
+ ForgeryJa(:name).title # => "君"
26
+ </code></pre>
27
+
28
+ #### option
29
+
30
+ * ForgeryJa::HIRA(or 1)で平仮名出力
31
+ * ForgeryJa::KANA(or 2)でカナ出力
32
+ * ForgeryJa::H_KANA(or 3)で半角カナ出力
33
+ * ForgeryJa::ROMA(or 4)で半角ローマ字出力
34
+ ※titleは対応してません
35
+
36
+ ### Monetary(お金関連)
37
+
38
+ <pre><code>ForgeryJa(:monetary).formatted_money # => 1000円
39
+ ForgeryJa(:monetary).money # => 1000
40
+ ForgeryJa(:monetary).popularity_money # => 1980
41
+ </code></pre>
42
+
43
+ #### options
44
+
45
+ * ForgeryJa(:monetary).formatted_money(:format => '\%d') #=> \1000
46
+ * それぞれ:max => 1000, :min => 500で最大値・最小値指定が可能
47
+
48
+ <pre><code>ForgeryJa.formatted_money(:max => 10000, :min => 5000) # => 5000円 - 10000円</code></pre>
49
+
50
+ ### Date(日付関連)
51
+
52
+ <pre><code>ForgeryJa(:date).month # => "3月"
53
+ ForgeryJa(:date).day_of_week # => "月曜日"</code></pre>
54
+
55
+ #### options
56
+
57
+ <pre><code>ForgeryJa(:date).month(:wa => true) # => "弥生"
58
+ ForgeryJa(:date).day_of_week(:abbr => true) # => "月"</code></pre>
59
+
60
+ ## features
61
+
62
+ * Gem化したい(もうちょっと)
63
+ * Address作る
64
+ * 電話番号作る
65
+
66
+ ## Copyright
67
+
68
+ Copyright (c) 2011 NAMAKESUGI, released under the MIT license
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec'
@@ -0,0 +1,22 @@
1
+ # coding: utf-8
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "forgery_ja/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "forgery_ja"
7
+ s.version = ForgeryJa::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["namakesugi"]
10
+ s.email = ["info@namakesugi.net"]
11
+ s.homepage = "https://github.com/namakesugi/forgery_ja"
12
+ s.summary = %q{Forgery for Japanese Data}
13
+ s.description = %q{Create dummy japanese data.}
14
+
15
+ s.rubyforge_project = "forgery_ja"
16
+ s.add_dependency "forgery", "~>0.3.8"
17
+ s.add_development_dependency "rspec"
18
+ s.files = `git ls-files`.split("\n")
19
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+ s.require_paths = ["lib"]
22
+ end
data/init.rb ADDED
@@ -0,0 +1 @@
1
+ require 'forgery_ja'
@@ -0,0 +1,12 @@
1
+ class ForgeryJa
2
+ # Define RETURN_TYPE : Kanji
3
+ KANJI = 0
4
+ # Define RETURN_TYPE : Hiragana
5
+ HIRA = 1
6
+ # Define RETURN_TYPE : Katakana
7
+ KANA = 2
8
+ # Define RETURN_TYPE : Half Katakana
9
+ H_KANA = 3
10
+ # Define RETURN_TYPE : Romaji
11
+ ROMA = 4
12
+ end
@@ -0,0 +1,50 @@
1
+ エレマテック えれまてっく エレマテック エレマテック elematec
2
+ エンシュウ えんしゅう エンシュウ エンシュウ enshu
3
+ エンチョー えんちょー エンチョー エンチョー encho
4
+ エンプラス えんぷらす エンプラス エンプラス enplas
5
+ 富士急行 ふじきゅうこう フジキュウコウ フジキュウコウ fujikyu
6
+ NTT西日本 えぬてぃてぃにしにほん エヌティティニシニホン エヌティティニシニホン ntt-west
7
+ エージーピー えーじーぴ エージーピー エージーピー agp
8
+ エース交易 えーすこうい エースコウイ エースコウイ acekoeki
9
+ エービーシー・マート えーびーしーまーと エービーシーマート エービシーマート abc-mart
10
+ エーワン精密 えーわんせいみつ エーワンセイミツ エーワンセイミツ a-one-seimitsu
11
+ オイレス工業 おれすこうぎょう オイレスコウギョウ オイレスコウギョウ oiles
12
+ オリジナル設計 おりじなるせっけい オリジナルせっけい オリジナルセッケイ oec-solution
13
+ オリジン電気 おりじんでんき オリジンデンキ オリジンデンキ origin
14
+ オリックス おりっくす オリックス オリックス orix
15
+ オリバー おりばー オリバー オリバー oliverinc
16
+ オリンパス おりんぱす オリンパス オリンパス olympus
17
+ オリンピック おりんぴっく オリンピック オリンピック olympic-corp
18
+ カブドットコム証券 かぶどっとこむしょうけん カブドットコムショウケン カブドットコムショウケン kabu
19
+ カメイ かめい カメイ カメイ kamei
20
+ カラカミ観光 からかみかんこう カラカミカンコウ カラカミカンコウ arakami-kankou
21
+ ガリバーインターナショナル がりばーいんたーなしょなる ガリバーインターナショナル ガリバーインターナショナル glv
22
+ カルソニックカンセイ かるそにっくかんせい カルソニックカンセイ カルソニックカンセイ calsonickansei
23
+ 精工技研 せいこうぎけん セイコウギケン セイコウギケン seikoh-giken
24
+ カルナバイオサイエンス かるなばいおさいえんす カルナバイオサイエンス カルナバイオサイエンス carnabio
25
+ キーウェアソリューションズ きーうぇあそりゅーしょんず キーウェアソリューションズ キーウェアソリューションズ keyware
26
+ キーエンス きーえんす キーエンス キーエンス keyence
27
+ キーコーヒー きーこーひー キーコーヒー キーコーヒー keycoffee
28
+ クオール くおーる クオール クオール qol-net
29
+ クスリのアオキ くすりのあおき クスリノアオキ クスリノアオキ kusuri-aoki
30
+ クロップス くろっぷす クロップス クロップス crops
31
+ クロニクル くろにくる クロニクル クロニクル chronicle-net
32
+ グローウェルホールディングス ぐろーうぇるほーるでぃんぐす グローウェルホールディングス グローウェルホールディングス growell
33
+ グローバルアクト ぐろーばるあくと グローバルアクト グローバルアクト global-act
34
+ グローバルダイニング ぐろーばるだいにんぐ グローバルダイニング グローバルダイニング global-dining
35
+ 京セラ きょうせら キョウセラ キョウセラ kyocera
36
+ 京都ホテル きょうとほてる キョウトホテル キョウトホテル kyotohotel
37
+ 琉球銀行 りゅうきゅうぎんこう リュウキュウギンコウ リュウキュウギンコウ ryugin
38
+ 富士重工業 ふじじゅうこうぎょう フジジュウコウギョウ フジジュウコウギョウ fhi
39
+ 放電精密加工研究所 ほうでんせいみつかこうけんきゅうじょ ホウデンセイミツカコウケンキュウジョ ホウデンセイミツカコウケンキュウジョ hsk
40
+ 名鉄運輸 めいてつうんゆ メイテツウンユ メイテツウンユ meitetsuunyu
41
+ 豊田合成 とよたごうせい トヨタゴウセイ トヨタゴウセイ toyoda-gosei
42
+ 富士通ゼネラル ふじつうぜねらる フジツウゼネラル フジツウゼネラル fujitsu-general
43
+ 明治電機工業 めいじでんきこうぎょう メイジデンキコウギョウ メイジデンキコウギョウ meijidenki
44
+ 明治乳業 めいじにゅうぎょう メイジニュウギョウ メイジニュウギョウ meiji
45
+ 明星工業 めいせいこうぎょう メイセイコウギョウ メイセイコウギョウ meisei-kogyo
46
+ 明星電気 めいせいでんき メイセイデンキ メイセイデンキ meisei
47
+ 明電舎 めいでんしゃ メイデンシャ メイデンシャ meidensha
48
+ 北海道ガス ほっかいどうがす ホッカイドウガス ホッカイドウガス hokkaido-gas
49
+ 富士ソフト ふじそふと フジソフト フジソフト fsi
50
+ 浜松ホトニクス はままつほとにくす ハママツホトニクス ハママツホトニクス hamamatsu
@@ -0,0 +1,51 @@
1
+ 恭子 きょうこ キョウコ キョウコ kyoko
2
+ はるか はるか ハルカ ハルカ haruka
3
+ こころ こころ ココロ ココロ kokoro
4
+ 沙織 さおり サオリ サオリ saori
5
+ 優希 ゆき ユキ ユキ yuki
6
+ 朱里 しゅり シュリ シュリ syuri
7
+ 瞳 ひとみ ヒトミ ヒトミ hitomi
8
+ 綾音 あやね アヤネ アヤネ ayane
9
+ 真帆 まほ マホ マホ maho
10
+ 華子 はなこ ハナコ ハナコ hanako
11
+ 咲 さき サキ サキ saki
12
+ 千夏 ちなつ チナツ チナツ chinatu
13
+ 彩夏 あやか アヤカ アヤカ ayaka
14
+ 仁美 ひとみ ヒトミ ヒトミ hitomi
15
+ 菫 かおる カオル カオル kaoru
16
+ 典子 のりこ ノリコ ノリコ noriko
17
+ 歩 あゆみ アユミ アユミ ayumi
18
+ 希 のぞみ ノゾミ ノゾミ nozomi
19
+ 友香 ともか トモカ トモカ tomoka
20
+ 翠 みどり ミドリ ミドリ midori
21
+ 理央 りお リオ リオ rio
22
+ 由美 ゆみ ユミ ユミ yumi
23
+ 友美 ともみ トモミ トモミ tomomi
24
+ 瑠璃 るり ルリ ルリ ruri
25
+ 祐子 ゆうこ ユウコ ユウコ yuko
26
+ 蘭 らん ラン ラン ran
27
+ 美希 みき ミキ ミキ miki
28
+ 朱莉 あかり アカリ アカリ akari
29
+ 麻美 あさみ アサミ アサミ asami
30
+ 美由紀 みゆき ミユキ ミユキ miyuki
31
+ 天音 あまね アマネ アマネ amane
32
+ 結愛 ゆあ ユア ユア yua
33
+ 美帆 みほ ミホ ミホ miho
34
+ 恵美子 えみこ エミコ エミコ emiko
35
+ 愛菜 あいな アイナ アイナ aina
36
+ 玲子 れいこ レイコ レイコ reiko
37
+ 柚葉 ゆずは ユズハ ユズハ yuzuha
38
+ 雪乃 ゆきの ユキノ ユキノ yuino
39
+ 奈菜 なな ナナ ナナ nana
40
+ 柚希 ゆずき ユズキ ユズキ yuzuki
41
+ 楓花 ふうか フウカ フウカ fuka
42
+ 実咲 みさき ミサキ ミサキ misaki
43
+ 陽奈 ひな ヒナ ヒナ hina
44
+ 空 そら ソラ ソラ sora
45
+ 真美 まみ マミ マミ mami
46
+ 加奈子 かなこ カナコ カナコ kanako
47
+ 真美子 まみこ マミコ マミコ mamiko
48
+ 千晶 ちあき チアキ チアキ chiaki
49
+ 真紀 まき マキ マキ maki
50
+ 朋子 ともこ トモコ トモコ tomoko
51
+
@@ -0,0 +1,3 @@
1
+ 医師 いし イシ イシ Doctor
2
+ お笑い芸人 おわらいげいにん オワライゲイニン オワライゲイニン Comedian
3
+ 気象予報士 きしょうよほうし キショウヨウホウシ キショウヨホウシ WeatherForecaster
@@ -0,0 +1,50 @@
1
+ 佐藤 さとう サトウ サトウ sato
2
+ 鈴木 すずき スズキ スズキ suzuki
3
+ 高橋 たかはし タカハシ タカハシ takahashi
4
+ 渡辺 わたなべ ワタナベ ワタナベ watanabe
5
+ 田中 たなか タナカ タナカ tanaka
6
+ 伊藤 いとう イトウ イトウ ito
7
+ 山本 やまもと ヤマモト ヤマモト yamamoto
8
+ 中村 なかむら ナカムラ ナカムラ nakamura
9
+ 小林 こばやし コバヤシ コバヤシ kobayashi
10
+ 斎藤 さいとう サイトウ サイトウ saito
11
+ 加藤 かとう カトウ カトウ kato
12
+ 吉田 よしだ ヨシダ ヨシダ yoshida
13
+ 山田 やまだ ヤマダ ヤマダ yamada
14
+ 佐々木 ささき ササキ ササキ sasaki
15
+ 山口 やまぐち ヤマグチ ヤマグチ yamaguti
16
+ 松本 まつもと マツモト マツモト matumoto
17
+ 井上 いのうえ イノウエ イノウエ inoue
18
+ 木村 きむら キムラ イムラ kimura
19
+ 林 はやし ハヤシ ハヤシ hayashi
20
+ 清水 しみず シミズ シミズ shimizu
21
+ 山崎 やまざき ヤマザキ ヤマザキ yamazaki
22
+ 池田 いけだ イケダ イケダ ikeda
23
+ 阿部 あべ アベ アベ abe
24
+ 森 もり モリ モリ mori
25
+ 橋本 はしもと ハシモト ハシモト hashimoto
26
+ 山下 やました ヤマシタ ヤマシタ yamashita
27
+ 石川 いしかわ イシカワ イシカワ ishikawa
28
+ 中島 なかじま ナカジマ ナカジマ nakajima
29
+ 前田 まえだ マエダ マエダ maeda
30
+ 藤田 ふじた フジタ フジタ fujita
31
+ 獅子吼 ししく シシク シシク sisiku
32
+ 小笠原 おがさわら オガサワラ オガサワラ ogasawara
33
+ 相澤 あいざわ アイザワ アイザワ aizawa
34
+ 相田 あいだ アイダ アイダ aida
35
+ 藍田 あいだ アイダ アイダ aida
36
+ 新井 あらい アライ アライ arai
37
+ 荒井 あらい アライ アライ arai
38
+ 高嶺 たかみね タカミネ タカミネ takamine
39
+ 菊池 きくち キクチ キクチ kikuchi
40
+ 平野 ひらの ヒラノ ヒラノ hirano
41
+ 近藤 こんどう コンドウ コンドウ kondo
42
+ 安藤 あんどう アンドウ アンドウ ando
43
+ 金城 きんじょう キンジョウ キンジョウ kinjyo
44
+ 玉城 たましろ タマシロ タマシロ tamashiro
45
+ 宮里 みやさと ミヤサト ミヤサト miyasato
46
+ 古賀 こが コガ コガ koga
47
+ 古閑 こが コガ コガ koga
48
+ 西森 にしもり ニシモリ ニシモリ nishimori
49
+ 足立 あだち アダチ アダチ adachi
50
+ 茂呂 もろ モロ モロ moro
@@ -0,0 +1,50 @@
1
+ 翔太 しょうた ショウタ ショウタ syota
2
+ 正太 しょうた ショウタ ショウタ syota
3
+ 尚太 しょうた ショウタ ショウタ syota
4
+ 翔 しょう ショウ ショウ syo
5
+ 陸 りく リク リク riku
6
+ 悠斗 ゆうと ユウト ユウト yuto
7
+ 大輝 たいき タイキ タイキ taiki
8
+ 悠人 ゆうと ユウト ユウト yuto
9
+ 優斗 ゆうと ユウト ユウト yuto
10
+ 優人 ゆうと ユウト ユウト yuto
11
+ 翼 つばさ ツバサ ツバサ tubasa
12
+ 奏太 そうた ソウタ ソウタ sota
13
+ 大輝 だいき ダイキ ダイキ daiki
14
+ 隼人 はやと ハヤト ハヤト hayato
15
+ 悠太 ゆうた ユウタ ユウタ yuta
16
+ 悠 ゆう ユウ ユウ yu
17
+ 健太 けんた ケンタ ケンタ kenta
18
+ 大輔 だいすけ ダイスケ ダイスケ daisuke
19
+ 駿 しゅん シュン シュン シュン syun
20
+ 拓海 たくみ タクミ タクミ takumi
21
+ 大地 だいち ダイチ ダイチ daichi
22
+ 誠 まこと マコト マコト makoto
23
+ 仁 じん ジン ジン jin
24
+ 大樹 だいき ダイキ ダイキ daiki
25
+ 諒 りょう リョウ リョウ ryo
26
+ 一郎 いちろう イチロウ イチロウ ichiro
27
+ 海斗 かいと カイト カイト kaito
28
+ 太一 たいち タイチ タイチ taichi
29
+ 健 けん ケン ケン ken
30
+ 亮太 りょうた リョウタ リョウタ ryota
31
+ 涼太 りょうた リョウタ リョウタ ryota
32
+ 匠 たくみ タクミ タクミ takumi
33
+ 太郎 たろう タロウ タロウ taro
34
+ 光 ひかる ヒカル ヒカル hikaru
35
+ 一樹 かずき カズキ カズキ kazuki
36
+ 啓介 けいすけ ケイスケ ケイスケ keisuke
37
+ 圭太 けいた ケイタ ケイタ keita
38
+ 碧 あおい アオイ アオイ aoi
39
+ 大悟 だいご ダイゴ ダイゴ daigo
40
+ 奏 かなで カナデ カナデ kanade
41
+ 陽輝 はるき ハルキ ハルキ haruki
42
+ 瞬 しゅん シュン シュン syun
43
+ 拓人 たくと タクト タクト takuto
44
+ 和希 かずき カズキ カズキ kazuki
45
+ 明 あきら アキラ アキラ akira
46
+ 隆 たかし タカシ タカシ takashi
47
+ 秀樹 ひでき ヒデキ ヒデキ hideki
48
+ 悟 さとる サトル サトル satoru
49
+ 拓 たく タク タク taku
50
+ 篤 あつし アツシ アツシ atsushi
@@ -0,0 +1,6 @@
1
+ 先生
2
+ 教授
3
+ さん
4
+
5
+
6
+ ちゃん
@@ -0,0 +1 @@
1
+ 相原町 あいはらまち アイハラマチ アイハラマチ Aihara-machi
@@ -0,0 +1,4 @@
1
+ # coding: utf-8
2
+ # Extensions Forgery::Date
3
+ class ForgeryJa::Address < Forgery::Address
4
+ end
@@ -0,0 +1,38 @@
1
+ # coding: utf-8
2
+ class ForgeryJa::Date < Forgery::Date
3
+ # the day name in Japanese
4
+ JA_DAYS = %w{日曜日 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日}
5
+ # the abbreviated form day name in Japanese
6
+ JA_DAYS_ABBR = %w{日 月 火 水 木 金 土}
7
+ # the Japanese name of the month ( "WA" )
8
+ JA_MONTHS_WA = %w{睦月 如月 弥生 卯月 皐月 水無月 文月 葉月 長月 神無月 霜月 師走}
9
+ # the Japanese name of the month
10
+ JA_MONTHS = %w{1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月}
11
+
12
+ # Returns a random day name in Japanese
13
+ # @param Hash options
14
+ # @option options [String] :abbr (false) 短縮形を使うかどうか
15
+ # @return String 曜日を日本語で返します
16
+ def self.day_of_week(options={})
17
+ options.reverse_merge!(:abbr => false)
18
+
19
+ if options[:abbr]
20
+ JA_DAYS_ABBR.random
21
+ else
22
+ JA_DAYS.random
23
+ end
24
+ end
25
+ # Returns a random month name in Japanese
26
+ # @param Hash options
27
+ # @option options [String] :wa (false) 和名を使うかどうか
28
+ # @return String 月の名前を日本語で返します
29
+ def self.month(options={})
30
+ options.reverse_merge!(:wa => false)
31
+
32
+ if options[:wa]
33
+ JA_MONTHS_WA.random
34
+ else
35
+ JA_MONTHS.random
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,36 @@
1
+ # encoding: utf-8
2
+ # Extensions Forgery::Monetary
3
+ class ForgeryJa::Monetary < Forgery::Monetary
4
+ # @param Hash options
5
+ # @option options [String] :format ("%d円") 金額出力の際のフォーマット
6
+ # @option options [Integer] :max (1000) 金額の最大値
7
+ # @option options [Integer] :min (0) 金額の最小値
8
+ # @return String :max - :minの間の数値に[円]を付与して返します
9
+ def self.formatted_money(options={})
10
+ options = {:format => "%d円"}.merge(options)
11
+ options[:format] % money(options)
12
+ end
13
+
14
+ # @params Hash options
15
+ # @option options [Fixnum] :max (1000) 金額の最大値
16
+ # @option options [Fixnum] :min (0) 金額の最小値
17
+ # @return Fixnum
18
+ def self.money(options={})
19
+ options = {:max => 1000,
20
+ :min => 0}.merge(options)
21
+
22
+ (options[:min]..options[:max]).random
23
+ end
24
+
25
+ # popularity in Japan
26
+ # @params Hash options
27
+ # @option options [Fixnum] :digit (4) 金額の桁
28
+ # @return Fixnum
29
+ def self.popularity_money(options={})
30
+ # TODO Popularityではない。適当過ぎる
31
+ options = {:digit => 4}.merge(options)
32
+ base_money = (1..9).random * (10 ** (options[:digit] - 1) )
33
+ return base_money if options[:digit] < 3
34
+ base_money + 98 * (10 ** (options[:digit] - 3))
35
+ end
36
+ end
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ class ForgeryJa::Name < Forgery::Name
3
+ # Returns LastName in Japanese
4
+ # @params ret_type [Fixnum] 戻す形を指定します
5
+ # @example
6
+ # Forgery[:name_ja].last_name #=> "佐藤"
7
+ # Forgery[:name_ja].last_name(Forgery::NameJa::HIRA) #=> "さとう"
8
+ # Forgery[:name_ja].last_name(Forgery::NameJa::KANA) #=> "サトウ"
9
+ # Forgery[:name_ja].last_name(Forgery::NameJa::H_KANA) #=> "サトウ" = half kana
10
+ # Forgery[:name_ja].last_name(Forgery::NameJa::ROMA) #=> "sato"
11
+ # Forgery[:name_ja].last_name(nil) #=> ["佐藤", "さとう", "サトウ", "サトウ", "sato"]
12
+ def self.last_name(ret_type=ForgeryJa::KANJI)
13
+ parse(dictionaries[:last_names_ja].random, ret_type)
14
+ end
15
+
16
+ def self.first_name(ret_type=ForgeryJa::KANJI)
17
+ parse([dictionaries[:male_first_names_ja], dictionaries[:female_first_names_ja]].random.random, ret_type)
18
+ end
19
+
20
+ def self.full_name(ret_type=ForgeryJa::KANJI)
21
+ "#{self.last_name(ret_type)} #{self.first_name(ret_type)}"
22
+ end
23
+
24
+ def self.male_first_name(ret_type=ForgeryJa::KANJI)
25
+ parse(dictionaries[:male_first_names_ja].random, ret_type)
26
+ end
27
+
28
+ def self.female_first_name(ret_type=ForgeryJa::KANJI)
29
+ parse(dictionaries[:female_first_names_ja].random, ret_type)
30
+ end
31
+
32
+ def self.company_name(ret_type=ForgeryJa::KANJI)
33
+ parse(dictionaries[:company_names_ja].random, ret_type)
34
+ end
35
+
36
+ def self.job_title(ret_type=ForgeryJa::KANJI)
37
+ parse(dictionaries[:job_titles_ja].random, ret_type)
38
+ end
39
+
40
+ def self.title
41
+ dictionaries[:name_titles_ja].random
42
+ end
43
+
44
+ private
45
+ def self.parse(str, ret_type)
46
+ strs = str.split(' ')
47
+ ret_type ? str[ret_type] : strs
48
+ end
49
+ end
@@ -0,0 +1,5 @@
1
+ # coding: utf-8
2
+ require 'forgery/forgery'
3
+ class ForgeryJa < Forgery
4
+
5
+ end
@@ -0,0 +1,9 @@
1
+ # coding: utf-8
2
+ def ForgeryJa(forgery, method=nil, *args)
3
+ klass = "ForgeryJa::#{forgery.to_s.camelize}".constantize
4
+ if method
5
+ klass.send(method, *args)
6
+ else
7
+ klass
8
+ end
9
+ end
File without changes
@@ -0,0 +1,3 @@
1
+ class ForgeryJa
2
+ VERSION = "0.0.1"
3
+ end
data/lib/forgery_ja.rb ADDED
@@ -0,0 +1,14 @@
1
+ require 'forgery'
2
+ require 'forgery_ja/forgery_ja'
3
+ require 'forgery_ja/version'
4
+ require 'forgery_ja/constant'
5
+ require 'forgery_ja/forgery_ja_api'
6
+
7
+ current_path = File.expand_path(File.dirname(__FILE__)) + '/'
8
+ Dir[current_path + 'forgery_ja/forgery_ja/**/*.rb'].uniq.each do |file|
9
+ require file
10
+ end
11
+
12
+ ForgeryJa.load_from! "#{current_path}/forgery_ja/"
13
+ #ForgeryJa.load_from! "#{ForgeryJa.rails_root}/lib/forgery" if Forgery.rails? && Rails::VERSION::STRING < "3.0.0"
14
+ #require 'forgery_ja/forgery_ja_railtie' if ForgeryJa.rails? && Rails::VERSION::STRING >= "3.0.0"
File without changes
@@ -0,0 +1,29 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe ForgeryJa::Date do
5
+ describe ".day_of_week" do
6
+ context "何も指定しないとき" do
7
+ subject { ForgeryJa::Date::JA_DAYS.include?(ForgeryJa(:date).day_of_week) }
8
+ it "Forgery::Date::JA_DAYSのいずれか" do
9
+ should be_true
10
+ end
11
+ end
12
+ context ":abbrにtrueを指定すると" do
13
+ subject { ForgeryJa::Date::JA_DAYS_ABBR.include?(ForgeryJa(:date).day_of_week(:abbr => true)) }
14
+ it "Forgery::Date::JA_DAYS_ABBRのいずれか" do
15
+ should be_true
16
+ end
17
+ end
18
+ end
19
+ describe ".month" do
20
+ context "何も指定しないとき" do
21
+ subject { ForgeryJa::Date::JA_MONTHS.include?(ForgeryJa(:date).month) }
22
+ it { should be_true }
23
+ end
24
+ context ":abbrにtrueを指定すると" do
25
+ subject { ForgeryJa::Date::JA_MONTHS_WA.include?(ForgeryJa(:date).month(:wa => true)) }
26
+ it { should be_true }
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe ForgeryJa::Monetary do
5
+ describe ".formatted_money" do
6
+ context "何も指定しないと" do
7
+ subject { ForgeryJa(:monetary).formatted_money }
8
+ it { should match /^[1-9]*[0-9]*円$/ }
9
+ end
10
+ context "formatを指定すると" do
11
+ subject { ForgeryJa(:monetary).formatted_money(:format => '\%d') }
12
+ it { should match /^\\[1-9]+[0-9]*$/ }
13
+ end
14
+ end
15
+ describe ".popularity_money" do
16
+ context "何も指定しないと" do
17
+ subject { ForgeryJa(:monetary).popularity_money.to_s }
18
+ it { should match /^[1-9]980$/ }
19
+ end
20
+ context "digitを5にすると" do
21
+ subject { ForgeryJa(:monetary).popularity_money(:digit => 5).to_s }
22
+ it { should match /^[1-9]9800$/ }
23
+ end
24
+ context "digitを3にすると" do
25
+ subject { ForgeryJa(:monetary).popularity_money(:digit => 3).to_s }
26
+ it { should match /^[1-9]98$/ }
27
+ end
28
+ context "digitを2にすると" do
29
+ subject { ForgeryJa(:monetary).popularity_money(:digit => 2).to_s }
30
+ it { should match /^[1-9]0$/ }
31
+ end
32
+ end
33
+
34
+ describe ".money" do
35
+ context "何も指定しないと" do
36
+ subject { ForgeryJa(:monetary).money }
37
+ it { should >= 0 }
38
+ it { should <= 1000 }
39
+ end
40
+ context "maxに0, minに0を指定すると" do
41
+ subject { ForgeryJa(:monetary).money(:max => 0, :min =>0) }
42
+ it { should eql 0 }
43
+ end
44
+ context "maxに1000, minに1000を指定すると" do
45
+ subject { ForgeryJa(:monetary).money(:max => 1000, :min => 1000) }
46
+ it { should eql 1000 }
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,27 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe ForgeryJa::Name do
5
+ describe ".last_name" do
6
+ context "名字(漢字)が返る" do
7
+ subject { ForgeryJa(:name).last_name(ForgeryJa::KANJI) }
8
+ it { should match /^[^あ-んa-zア-ンアーン]+$/ }
9
+ end
10
+ context "名字(ひらがな)が返る" do
11
+ subject { ForgeryJa(:name).last_name(ForgeryJa::HIRA) }
12
+ it { should.is_a?(String) }
13
+ end
14
+ context "名字(カタカナ)が返る" do
15
+ subject { ForgeryJa(:name).last_name(ForgeryJa::KANA) }
16
+ it { should.is_a?(String) }
17
+ end
18
+ context "名字(半角カタカナ)が返る" do
19
+ subject { ForgeryJa(:name).last_name(ForgeryJa::H_KANA) }
20
+ it { should.is_a?(String) }
21
+ end
22
+ context "名字(ローマ字)が返る" do
23
+ subject { ForgeryJa(:name).last_name(ForgeryJa::ROMA) }
24
+ it { should.is_a?(String) }
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,2 @@
1
+ require 'rspec'
2
+ require File.expand_path(File.dirname(__FILE__) + '/../init')
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: forgery_ja
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - namakesugi
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-06-05 00:00:00 +09:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: forgery
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: 0.3.8
25
+ type: :runtime
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: "0"
36
+ type: :development
37
+ version_requirements: *id002
38
+ description: Create dummy japanese data.
39
+ email:
40
+ - info@namakesugi.net
41
+ executables: []
42
+
43
+ extensions: []
44
+
45
+ extra_rdoc_files: []
46
+
47
+ files:
48
+ - .gitignore
49
+ - Gemfile
50
+ - Guardfile
51
+ - README.markdown
52
+ - Rakefile
53
+ - forgery_ja.gemspec
54
+ - init.rb
55
+ - lib/forgery_ja.rb
56
+ - lib/forgery_ja/constant.rb
57
+ - lib/forgery_ja/dictionaries/company_names_ja
58
+ - lib/forgery_ja/dictionaries/female_first_names_ja
59
+ - lib/forgery_ja/dictionaries/job_titles_ja
60
+ - lib/forgery_ja/dictionaries/last_names_ja
61
+ - lib/forgery_ja/dictionaries/male_first_names_ja
62
+ - lib/forgery_ja/dictionaries/name_titles_ja
63
+ - lib/forgery_ja/dictionaries/streets_ja
64
+ - lib/forgery_ja/forgery_ja.rb
65
+ - lib/forgery_ja/forgery_ja/address.rb
66
+ - lib/forgery_ja/forgery_ja/date.rb
67
+ - lib/forgery_ja/forgery_ja/monetary.rb
68
+ - lib/forgery_ja/forgery_ja/name.rb
69
+ - lib/forgery_ja/forgery_ja_api.rb
70
+ - lib/forgery_ja/forgery_ja_railtie.rb
71
+ - lib/forgery_ja/version.rb
72
+ - spec/forgery_ja/address_spec.rb
73
+ - spec/forgery_ja/date_spec.rb
74
+ - spec/forgery_ja/monetary_spec.rb
75
+ - spec/forgery_ja/name_spec.rb
76
+ - spec/spec_helper.rb
77
+ has_rdoc: true
78
+ homepage: https://github.com/namakesugi/forgery_ja
79
+ licenses: []
80
+
81
+ post_install_message:
82
+ rdoc_options: []
83
+
84
+ require_paths:
85
+ - lib
86
+ required_ruby_version: !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: "0"
92
+ required_rubygems_version: !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: "0"
98
+ requirements: []
99
+
100
+ rubyforge_project: forgery_ja
101
+ rubygems_version: 1.6.2
102
+ signing_key:
103
+ specification_version: 3
104
+ summary: Forgery for Japanese Data
105
+ test_files: []
106
+