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 CHANGED
@@ -2,3 +2,4 @@
2
2
  .bundle
3
3
  Gemfile.lock
4
4
  pkg/*
5
+ doc/*
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
Binary file
data/Gemfile CHANGED
@@ -3,6 +3,11 @@ source "http://rubygems.org"
3
3
  # Specify your gem's dependencies in forgery_ja.gemspec
4
4
  gem 'forgery'
5
5
 
6
+ group :development do
7
+ gem 'yard'
8
+ gem 'rdiscount'
9
+ end
10
+
6
11
  group :development, :test do
7
12
  gem 'rspec-rails'
8
13
 
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
+
@@ -8,5 +8,7 @@ class ForgeryJa
8
8
  # Define RETURN_TYPE : Half Katakana
9
9
  H_KANA = 3
10
10
  # Define RETURN_TYPE : Romaji
11
- ROMA = 4
11
+ ROMA = 4
12
+ # Define RETURN_TYPE : Array
13
+ ARRAY = 5
12
14
  end
@@ -1,4 +1,3 @@
1
1
  # coding: utf-8
2
- # Extensions Forgery::Date
3
2
  class ForgeryJa::Address < Forgery::Address
4
3
  end
@@ -11,7 +11,9 @@ class ForgeryJa::Monetary < Forgery::Monetary
11
11
  options[:format] % money(options)
12
12
  end
13
13
 
14
- # @params Hash options
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
- # @params Hash options
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
- # @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)
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
- def self.first_name(ret_type=ForgeryJa::KANJI)
17
- parse([dictionaries[:male_first_names_ja], dictionaries[:female_first_names_ja]].random.random, ret_type)
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
- def self.full_name(ret_type=ForgeryJa::KANJI)
21
- "#{self.last_name(ret_type)} #{self.first_name(ret_type)}"
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
- def self.male_first_name(ret_type=ForgeryJa::KANJI)
25
- parse(dictionaries[:male_first_names_ja].random, ret_type)
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
- def self.female_first_name(ret_type=ForgeryJa::KANJI)
29
- parse(dictionaries[:female_first_names_ja].random, ret_type)
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
- def self.company_name(ret_type=ForgeryJa::KANJI)
33
- parse(dictionaries[:company_names_ja].random, ret_type)
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
- def self.job_title(ret_type=ForgeryJa::KANJI)
37
- parse(dictionaries[:job_titles_ja].random, ret_type)
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 ? str[ret_type] : strs
95
+ ret_type ? strs[ret_type] : strs
48
96
  end
49
97
  end
@@ -1,4 +1,5 @@
1
1
  # coding: utf-8
2
+ # ForgeryJa Api
2
3
  def ForgeryJa(forgery, method=nil, *args)
3
4
  klass = "ForgeryJa::#{forgery.to_s.camelize}".constantize
4
5
  if method
@@ -1,3 +1,4 @@
1
1
  class ForgeryJa
2
- VERSION = "0.0.1"
2
+ # version number
3
+ VERSION = "0.1.0"
3
4
  end
@@ -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 /^[^あ-んa-zア-ンアーン]+$/ }
7
+ subject { ForgeryJa(:name).last_name(:to => ForgeryJa::KANJI) }
8
+ it { should match /^[^A-Za-zア-ンァ-ョッー゚゙・]+$/ }
9
9
  end
10
- context "名字(ひらがな)が返る" do
11
- subject { ForgeryJa(:name).last_name(ForgeryJa::HIRA) }
12
- it { should.is_a?(String) }
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
- context "名字(カタカナ)が返る" do
15
- subject { ForgeryJa(:name).last_name(ForgeryJa::KANA) }
16
- it { should.is_a?(String) }
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
- context "名字(半角カタカナ)が返る" do
19
- subject { ForgeryJa(:name).last_name(ForgeryJa::H_KANA) }
20
- it { should.is_a?(String) }
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
- context "名字(ローマ字)が返る" do
23
- subject { ForgeryJa(:name).last_name(ForgeryJa::ROMA) }
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.1
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-05 00:00:00 +09:00
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