forgery_ja 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/.yardoc/checksums +8 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/Gemfile +5 -0
- data/MIT-LICENSE +20 -0
- data/Rakefile +22 -1
- data/lib/forgery_ja/constant.rb +3 -1
- data/lib/forgery_ja/forgery_ja/address.rb +0 -1
- data/lib/forgery_ja/forgery_ja/monetary.rb +6 -2
- data/lib/forgery_ja/forgery_ja/name.rb +71 -23
- data/lib/forgery_ja/forgery_ja_api.rb +1 -0
- data/lib/forgery_ja/version.rb +2 -1
- data/spec/forgery_ja/name_spec.rb +43 -13
- metadata +6 -3
- data/lib/forgery_ja/forgery_ja_railtie.rb +0 -0
data/.gitignore
CHANGED
data/.yardoc/checksums
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
lib/forgery_ja/version.rb cb80b1a6ef92bef543bfdf913f12a381ded58b9f
|
2
|
+
lib/forgery_ja/constant.rb 725f1d5eb24f6d568d7d14b69ccc6780364cc343
|
3
|
+
lib/forgery_ja/forgery_ja.rb 4bcbfc592564edff42dc21ce66f9a914057d1593
|
4
|
+
lib/forgery_ja/forgery_ja_api.rb a6e0908d17ff65c2ed9d63bf321126d5d555e95f
|
5
|
+
lib/forgery_ja/forgery_ja/date.rb fdc36502d38430114900f76c3bcbdab272c1bf1a
|
6
|
+
lib/forgery_ja/forgery_ja/name.rb 3a3b61f87f1b935399a515ab151085aa2ac53488
|
7
|
+
lib/forgery_ja/forgery_ja/address.rb 38ab2111b036e38f5b2513f37b689121dfb96742
|
8
|
+
lib/forgery_ja/forgery_ja/monetary.rb bbaa75332899e9b2a26ceabb61c577b319ef2a82
|
Binary file
|
data/.yardoc/proxy_types
ADDED
Binary file
|
data/Gemfile
CHANGED
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 NAMAKESUGI
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
CHANGED
@@ -1,4 +1,25 @@
|
|
1
1
|
require 'bundler'
|
2
2
|
Bundler::GemHelper.install_tasks
|
3
3
|
|
4
|
-
require 'rspec'
|
4
|
+
require 'rspec/core'
|
5
|
+
require 'rspec/core/rake_task'
|
6
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
7
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
8
|
+
end
|
9
|
+
|
10
|
+
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
11
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
12
|
+
spec.rcov = true
|
13
|
+
end
|
14
|
+
|
15
|
+
require 'yard'
|
16
|
+
require 'yard/rake/yardoc_task'
|
17
|
+
YARD::Rake::YardocTask.new do |t|
|
18
|
+
t.files = ['lib/forgery_ja/**/*.rb']
|
19
|
+
t.options = []
|
20
|
+
t.options << '--debug' << '--verbose' if $trace
|
21
|
+
end
|
22
|
+
|
23
|
+
task :default => :spec
|
24
|
+
|
25
|
+
|
data/lib/forgery_ja/constant.rb
CHANGED
@@ -11,7 +11,9 @@ class ForgeryJa::Monetary < Forgery::Monetary
|
|
11
11
|
options[:format] % money(options)
|
12
12
|
end
|
13
13
|
|
14
|
-
#
|
14
|
+
# Create Random number
|
15
|
+
# defaut 0 to 1000
|
16
|
+
# @param Hash options
|
15
17
|
# @option options [Fixnum] :max (1000) 金額の最大値
|
16
18
|
# @option options [Fixnum] :min (0) 金額の最小値
|
17
19
|
# @return Fixnum
|
@@ -23,7 +25,9 @@ class ForgeryJa::Monetary < Forgery::Monetary
|
|
23
25
|
end
|
24
26
|
|
25
27
|
# popularity in Japan
|
26
|
-
#
|
28
|
+
# 日本においてポピュラーな数値を生成します
|
29
|
+
# 適当実装ですので1980, 19800,などの数値になります
|
30
|
+
# @param Hash options
|
27
31
|
# @option options [Fixnum] :digit (4) 金額の桁
|
28
32
|
# @return Fixnum
|
29
33
|
def self.popularity_money(options={})
|
@@ -1,49 +1,97 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
# ForgeryJa::Name
|
3
|
+
# 日本語の名前関連のダミーデータを生成します
|
4
|
+
# 一部を除き引数に:to => ForgeryJa::KANA等を指定するとその指定した形式で出力されます
|
5
|
+
# @example
|
6
|
+
# ForgeryJa[:name].last_name #=> "佐藤"
|
7
|
+
# ForgeryJa[:name].last_name(:to => ForgeryJa::KANA) #=> "サトウ"
|
8
|
+
# ForgeryJa[:name].last_name(:to => ForgeryJa::ARRAY) #=> ["佐藤", "さとう", "サトウ", "サトウ", "sato"]
|
2
9
|
class ForgeryJa::Name < Forgery::Name
|
3
10
|
# Returns LastName in Japanese
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
8
|
-
|
9
|
-
|
10
|
-
|
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)
|
11
|
+
# 日本語の名字を返します
|
12
|
+
# * 辞書ファイル : last_names_ja
|
13
|
+
# @param Hash options
|
14
|
+
# @option options [Fixnum] :to (ForgeryJa::KANJI) 生成する文字の種類を指定します
|
15
|
+
def self.last_name(options={})
|
16
|
+
options = default_options(options)
|
17
|
+
parse(dictionaries[:last_names_ja].random, options[:to])
|
14
18
|
end
|
15
19
|
|
16
|
-
|
17
|
-
|
20
|
+
# Returns FirstName in Japanese
|
21
|
+
# 日本語の名前を返します
|
22
|
+
# @param Hash options
|
23
|
+
# @option options [Fixnum] :to (ForgeryJa::KANJI) 生成する文字の種類を指定します
|
24
|
+
def self.first_name(options={})
|
25
|
+
options = default_options(options)
|
26
|
+
parse([dictionaries[:male_first_names_ja], dictionaries[:female_first_names_ja]].random.random, options[:to])
|
18
27
|
end
|
19
28
|
|
20
|
-
|
21
|
-
|
29
|
+
# Returns FullName in Japanese
|
30
|
+
# 日本語のフルネームを返します
|
31
|
+
# @param Hash options
|
32
|
+
# @option options [Fixnum] :to (ForgeryJa::KANJI) 生成する文字の種類を指定します
|
33
|
+
def self.full_name(options={})
|
34
|
+
options = default_options(options)
|
35
|
+
"#{self.last_name(options)} #{self.first_name(options)}"
|
22
36
|
end
|
23
37
|
|
24
|
-
|
25
|
-
|
38
|
+
# Returns Male FirstName in Japanese
|
39
|
+
# 日本語の男性の名前を返します
|
40
|
+
# * 辞書ファイル : male_first_names_ja
|
41
|
+
# @param Hash options
|
42
|
+
# @option options [Fixnum] :to (ForgeryJa::KANJI) 生成する文字の種類を指定します
|
43
|
+
def self.male_first_name(options={})
|
44
|
+
options = default_options(options)
|
45
|
+
parse(dictionaries[:male_first_names_ja].random, options[:to])
|
26
46
|
end
|
27
47
|
|
28
|
-
|
29
|
-
|
48
|
+
# Returns Female FirstName in Japanese
|
49
|
+
# 日本語の女性の名前を返します
|
50
|
+
# * 辞書ファイル : female_first_names_ja
|
51
|
+
# @param Hash options
|
52
|
+
# @option options [Fixnum] :to (ForgeryJa::KANJI) 生成する文字の種類を指定します
|
53
|
+
def self.female_first_name(options={})
|
54
|
+
options = default_options(options)
|
55
|
+
parse(dictionaries[:female_first_names_ja].random, options[:to])
|
30
56
|
end
|
31
57
|
|
32
|
-
|
33
|
-
|
58
|
+
# Returns CompanyName in Japanese
|
59
|
+
# 日本語の企業名を返します
|
60
|
+
# 利用している企業は上場企業から適当に抽出しています
|
61
|
+
# * 辞書ファイル : company_names_ja
|
62
|
+
# @param Hash options
|
63
|
+
# @option options [Fixnum] :to (ForgeryJa::KANJI) 生成する文字の種類を指定します
|
64
|
+
def self.company_name(options={})
|
65
|
+
options = default_options(options)
|
66
|
+
parse(dictionaries[:company_names_ja].random, options[:to])
|
34
67
|
end
|
35
68
|
|
36
|
-
|
37
|
-
|
69
|
+
# Returns JobTitle in Japanese
|
70
|
+
# 日本語の職業名を返します
|
71
|
+
# * 辞書ファイル : job_titles_ja
|
72
|
+
# @param Hash options
|
73
|
+
# @option options [Fixnum] :to (ForgeryJa::KANJI) 生成する文字の種類を指定します
|
74
|
+
def self.job_title(options={})
|
75
|
+
options = default_options(options)
|
76
|
+
parse(dictionaries[:job_titles_ja].random, options[:to])
|
38
77
|
end
|
39
78
|
|
79
|
+
# Returns NameTitle in Japanese
|
80
|
+
# 日本語の敬称名を返します
|
81
|
+
# * 辞書ファイル : name_titles_ja
|
82
|
+
# * optionの指定はできません
|
40
83
|
def self.title
|
41
84
|
dictionaries[:name_titles_ja].random
|
42
85
|
end
|
43
86
|
|
44
87
|
private
|
88
|
+
# merge option
|
89
|
+
def self.default_options(option)
|
90
|
+
{:to => ForgeryJa::KANJI}.merge(option)
|
91
|
+
end
|
92
|
+
# parse dictionaries data
|
45
93
|
def self.parse(str, ret_type)
|
46
94
|
strs = str.split(' ')
|
47
|
-
ret_type ?
|
95
|
+
ret_type ? strs[ret_type] : strs
|
48
96
|
end
|
49
97
|
end
|
data/lib/forgery_ja/version.rb
CHANGED
@@ -4,23 +4,53 @@ require 'spec_helper'
|
|
4
4
|
describe ForgeryJa::Name do
|
5
5
|
describe ".last_name" do
|
6
6
|
context "名字(漢字)が返る" do
|
7
|
-
subject { ForgeryJa(:name).last_name(ForgeryJa::KANJI) }
|
8
|
-
it { should match /^[
|
7
|
+
subject { ForgeryJa(:name).last_name(:to => ForgeryJa::KANJI) }
|
8
|
+
it { should match /^[^A-Za-zア-ンァ-ョッー゚゙・]+$/ }
|
9
9
|
end
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
end
|
11
|
+
describe ".first_name" do
|
12
|
+
context "名前(漢字)が返る" do
|
13
|
+
subject { ForgeryJa(:name).first_name(:to => ForgeryJa::KANJI) }
|
14
|
+
it { should match /^[^A-Za-zア-ンァ-ョッー゚゙・]+$/ }
|
13
15
|
end
|
14
|
-
|
15
|
-
|
16
|
-
|
16
|
+
end
|
17
|
+
describe ".male_first_name" do
|
18
|
+
context "名前(ひらがな)が返る" do
|
19
|
+
subject { ForgeryJa(:name).male_first_name(:to => ForgeryJa::HIRA) }
|
20
|
+
it { should match /^[あ-んが-ぼぁ-ょゎっー]+$/ }
|
17
21
|
end
|
18
|
-
|
19
|
-
|
20
|
-
|
22
|
+
end
|
23
|
+
describe ".female_first_name" do
|
24
|
+
context "名前(カタカナ)が返る" do
|
25
|
+
subject { ForgeryJa(:name).female_first_name(:to => ForgeryJa::KANA) }
|
26
|
+
it { should match /^[ア-ンガ-ボァ-ョヮッー]+$/ }
|
21
27
|
end
|
22
|
-
|
23
|
-
|
28
|
+
end
|
29
|
+
describe ".full_name" do
|
30
|
+
context "フルネーム(漢字)が返る" do
|
31
|
+
subject { ForgeryJa(:name).full_name(:to => ForgeryJa::KANJI) }
|
32
|
+
it { should match /^[^A-Za-zア-ンァ-ョッー゚゙・]+ [^A-Za-zア-ンァ-ョッー゚゙・]+$/ }
|
33
|
+
end
|
34
|
+
context "フルネーム(ひらがな)が返る" do
|
35
|
+
subject { ForgeryJa(:name).full_name(:to => ForgeryJa::HIRA) }
|
36
|
+
it { should match /^[あ-んが-ぼぁ-ょゎっー]+ [あ-んが-ぼぁ-ょゎっー]+$/ }
|
37
|
+
end
|
38
|
+
context "フルネーム(カタカナ)が返る" do
|
39
|
+
subject { ForgeryJa(:name).full_name(:to => ForgeryJa::KANA) }
|
40
|
+
it { should match /^[ア-ンガ-ボァ-ョヮッー]+ [ア-ンガ-ボァ-ョヮッー]+$/ }
|
41
|
+
end
|
42
|
+
context "フルネーム(半角カタカナ)が返る" do
|
43
|
+
subject { ForgeryJa(:name).full_name(:to => ForgeryJa::H_KANA) }
|
44
|
+
it { should match /^[ア-ンァ-ョッー゚゙・]+ [ア-ンァ-ョッー゚゙・]+$/ }
|
45
|
+
end
|
46
|
+
context "フルネーム(ローマ字)が返る" do
|
47
|
+
subject { ForgeryJa(:name).full_name(:to => ForgeryJa::ROMA) }
|
48
|
+
it { should match /^[a-zA-Z-]+ [a-zA-Z-]+$/ }
|
49
|
+
end
|
50
|
+
end
|
51
|
+
describe ".company_name" do
|
52
|
+
context "企業名が返る" do
|
53
|
+
subject { ForgeryJa(:name).company_name(:to => ForgeryJa::KANJI) }
|
24
54
|
it { should.is_a?(String) }
|
25
55
|
end
|
26
56
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: forgery_ja
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0
|
5
|
+
version: 0.1.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- namakesugi
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-06-
|
13
|
+
date: 2011-06-06 00:00:00 +09:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -46,8 +46,12 @@ extra_rdoc_files: []
|
|
46
46
|
|
47
47
|
files:
|
48
48
|
- .gitignore
|
49
|
+
- .yardoc/checksums
|
50
|
+
- .yardoc/objects/root.dat
|
51
|
+
- .yardoc/proxy_types
|
49
52
|
- Gemfile
|
50
53
|
- Guardfile
|
54
|
+
- MIT-LICENSE
|
51
55
|
- README.markdown
|
52
56
|
- Rakefile
|
53
57
|
- forgery_ja.gemspec
|
@@ -67,7 +71,6 @@ files:
|
|
67
71
|
- lib/forgery_ja/forgery_ja/monetary.rb
|
68
72
|
- lib/forgery_ja/forgery_ja/name.rb
|
69
73
|
- lib/forgery_ja/forgery_ja_api.rb
|
70
|
-
- lib/forgery_ja/forgery_ja_railtie.rb
|
71
74
|
- lib/forgery_ja/version.rb
|
72
75
|
- spec/forgery_ja/address_spec.rb
|
73
76
|
- spec/forgery_ja/date_spec.rb
|
File without changes
|