ryba 0.1.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.
- data/.gitignore +4 -0
- data/MIT-LICENSE +20 -0
- data/README.textile +117 -0
- data/Rakefile +41 -0
- data/VERSION.yml +5 -0
- data/lib/ryba.rb +39 -0
- data/lib/ryba/address.rb +74 -0
- data/lib/ryba/data.rb +817 -0
- data/lib/ryba/name.rb +44 -0
- data/lib/ryba/phone_number.rb +38 -0
- data/ryba.gemspec +53 -0
- data/spec/ryba_spec.rb +66 -0
- data/spec/spec_helper.rb +9 -0
- metadata +80 -0
data/lib/ryba/name.rb
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
module Ryba
|
|
2
|
+
class Name
|
|
3
|
+
class <<self
|
|
4
|
+
def gender
|
|
5
|
+
male = Kernel.rand(100) < 50
|
|
6
|
+
yield(male) if block_given?
|
|
7
|
+
male
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def first_name(male = nil)
|
|
11
|
+
pick_with_gender(male, Data::MaleNames, Data::FemaleNames)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def middle_name(male = nil)
|
|
15
|
+
pick_with_gender(male, Data::MaleMiddleNames, Data::FemaleMiddleNames)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def family_name(male = nil)
|
|
19
|
+
male = gender if male.nil?
|
|
20
|
+
|
|
21
|
+
famname = Ryba.pick(Data::FamilyNames)
|
|
22
|
+
|
|
23
|
+
if famname.is_a? Array
|
|
24
|
+
famname[0] + famname[male ? 1 : 2]
|
|
25
|
+
else
|
|
26
|
+
male ? famname : famname + 'а'
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def full_name(male = nil)
|
|
31
|
+
male = gender if male.nil?
|
|
32
|
+
|
|
33
|
+
"#{family_name(male)} #{first_name(male)} #{middle_name(male)}"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
private
|
|
37
|
+
|
|
38
|
+
def pick_with_gender(male, male_ary, female_ary)
|
|
39
|
+
male = gender if male.nil?
|
|
40
|
+
Ryba.pick(male ? male_ary : female_ary)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module Ryba
|
|
2
|
+
class PhoneNumber
|
|
3
|
+
Formats = [
|
|
4
|
+
# локальные номера
|
|
5
|
+
'?##-##-##',
|
|
6
|
+
'?######',
|
|
7
|
+
'?#-##-##',
|
|
8
|
+
'?-##-##',
|
|
9
|
+
|
|
10
|
+
# номера с кодом города
|
|
11
|
+
'(###) ?##-##-##',
|
|
12
|
+
'(###) ?## ## ##',
|
|
13
|
+
'8 (###) ?##-##-##',
|
|
14
|
+
'+7 (###) ?##-##-##',
|
|
15
|
+
'(####) ?#-##-##',
|
|
16
|
+
'(####) ?# ## ##',
|
|
17
|
+
'8 (####) ?#-##-##',
|
|
18
|
+
'+7 (####) ?#-##-##',
|
|
19
|
+
'(#####) ?-##-##',
|
|
20
|
+
'(#####) ? ## ##',
|
|
21
|
+
'8 (#####) ?-##-##',
|
|
22
|
+
'+7 (#####) ?-##-##',
|
|
23
|
+
|
|
24
|
+
# мобильники
|
|
25
|
+
'8-9##-###-####',
|
|
26
|
+
'8-9##-###-##-##',
|
|
27
|
+
'+7 9## ### ####',
|
|
28
|
+
'+7 9## ### ####',
|
|
29
|
+
].freeze
|
|
30
|
+
|
|
31
|
+
def self.phone_number
|
|
32
|
+
fmt = Ryba.pick(Formats)
|
|
33
|
+
|
|
34
|
+
# локальные номера не могут начинаться на 8 или 0
|
|
35
|
+
Ryba.numerify(fmt.gsub('?') { Ryba.pick("12345679") })
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
data/ryba.gemspec
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Generated by jeweler
|
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
|
4
|
+
# -*- encoding: utf-8 -*-
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |s|
|
|
7
|
+
s.name = %q{ryba}
|
|
8
|
+
s.version = "0.1.0"
|
|
9
|
+
|
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
|
+
s.authors = ["oleg dashevskii"]
|
|
12
|
+
s.date = %q{2010-07-26}
|
|
13
|
+
s.description = %q{Russian names and addresses generator}
|
|
14
|
+
s.email = %q{olegdashevskii@gmail.com}
|
|
15
|
+
s.extra_rdoc_files = [
|
|
16
|
+
"README.textile"
|
|
17
|
+
]
|
|
18
|
+
s.files = [
|
|
19
|
+
".gitignore",
|
|
20
|
+
"MIT-LICENSE",
|
|
21
|
+
"README.textile",
|
|
22
|
+
"Rakefile",
|
|
23
|
+
"VERSION.yml",
|
|
24
|
+
"lib/ryba.rb",
|
|
25
|
+
"lib/ryba/address.rb",
|
|
26
|
+
"lib/ryba/data.rb",
|
|
27
|
+
"lib/ryba/name.rb",
|
|
28
|
+
"lib/ryba/phone_number.rb",
|
|
29
|
+
"ryba.gemspec",
|
|
30
|
+
"spec/ryba_spec.rb",
|
|
31
|
+
"spec/spec_helper.rb"
|
|
32
|
+
]
|
|
33
|
+
s.homepage = %q{http://github.com/be9/ryba}
|
|
34
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
|
35
|
+
s.require_paths = ["lib"]
|
|
36
|
+
s.rubygems_version = %q{1.3.7}
|
|
37
|
+
s.summary = %q{Russian faker}
|
|
38
|
+
s.test_files = [
|
|
39
|
+
"spec/ryba_spec.rb",
|
|
40
|
+
"spec/spec_helper.rb"
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
if s.respond_to? :specification_version then
|
|
44
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
45
|
+
s.specification_version = 3
|
|
46
|
+
|
|
47
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
48
|
+
else
|
|
49
|
+
end
|
|
50
|
+
else
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
data/spec/ryba_spec.rb
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "Ryba" do
|
|
4
|
+
describe "Name" do
|
|
5
|
+
before :all do
|
|
6
|
+
@name = Ryba::Name
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "should work for male" do
|
|
10
|
+
@name.first_name(true)
|
|
11
|
+
@name.middle_name(true)
|
|
12
|
+
@name.family_name(true)
|
|
13
|
+
@name.full_name(true)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should work for female" do
|
|
17
|
+
@name.first_name(false)
|
|
18
|
+
@name.middle_name(false)
|
|
19
|
+
@name.family_name(false)
|
|
20
|
+
@name.full_name(false)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should work with random gender" do
|
|
24
|
+
@name.gender do |gender|
|
|
25
|
+
@name.first_name(gender)
|
|
26
|
+
@name.middle_name(gender)
|
|
27
|
+
@name.family_name(gender)
|
|
28
|
+
@name.full_name(gender)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe "PhoneNumber" do
|
|
34
|
+
before :all do
|
|
35
|
+
@pn = Ryba::PhoneNumber
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "should work" do
|
|
39
|
+
20.times do
|
|
40
|
+
@pn.phone_number.should match(/\d/)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
describe "Address" do
|
|
46
|
+
before :all do
|
|
47
|
+
@adr = Ryba::Address
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "#index should be integer" do
|
|
51
|
+
20.times do
|
|
52
|
+
@adr.index.should be_kind_of(Integer)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
[:city, :full_city, :street, :address, :postal].each do |meth|
|
|
57
|
+
it "##{meth} should return not empty string" do
|
|
58
|
+
20.times do
|
|
59
|
+
str = @adr.send(meth)
|
|
60
|
+
str.should be_kind_of(String)
|
|
61
|
+
str.should_not be_empty
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: ryba
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
hash: 27
|
|
5
|
+
prerelease: false
|
|
6
|
+
segments:
|
|
7
|
+
- 0
|
|
8
|
+
- 1
|
|
9
|
+
- 0
|
|
10
|
+
version: 0.1.0
|
|
11
|
+
platform: ruby
|
|
12
|
+
authors:
|
|
13
|
+
- oleg dashevskii
|
|
14
|
+
autorequire:
|
|
15
|
+
bindir: bin
|
|
16
|
+
cert_chain: []
|
|
17
|
+
|
|
18
|
+
date: 2010-07-26 00:00:00 +07:00
|
|
19
|
+
default_executable:
|
|
20
|
+
dependencies: []
|
|
21
|
+
|
|
22
|
+
description: Russian names and addresses generator
|
|
23
|
+
email: olegdashevskii@gmail.com
|
|
24
|
+
executables: []
|
|
25
|
+
|
|
26
|
+
extensions: []
|
|
27
|
+
|
|
28
|
+
extra_rdoc_files:
|
|
29
|
+
- README.textile
|
|
30
|
+
files:
|
|
31
|
+
- .gitignore
|
|
32
|
+
- MIT-LICENSE
|
|
33
|
+
- README.textile
|
|
34
|
+
- Rakefile
|
|
35
|
+
- VERSION.yml
|
|
36
|
+
- lib/ryba.rb
|
|
37
|
+
- lib/ryba/address.rb
|
|
38
|
+
- lib/ryba/data.rb
|
|
39
|
+
- lib/ryba/name.rb
|
|
40
|
+
- lib/ryba/phone_number.rb
|
|
41
|
+
- ryba.gemspec
|
|
42
|
+
- spec/ryba_spec.rb
|
|
43
|
+
- spec/spec_helper.rb
|
|
44
|
+
has_rdoc: true
|
|
45
|
+
homepage: http://github.com/be9/ryba
|
|
46
|
+
licenses: []
|
|
47
|
+
|
|
48
|
+
post_install_message:
|
|
49
|
+
rdoc_options:
|
|
50
|
+
- --charset=UTF-8
|
|
51
|
+
require_paths:
|
|
52
|
+
- lib
|
|
53
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
54
|
+
none: false
|
|
55
|
+
requirements:
|
|
56
|
+
- - ">="
|
|
57
|
+
- !ruby/object:Gem::Version
|
|
58
|
+
hash: 3
|
|
59
|
+
segments:
|
|
60
|
+
- 0
|
|
61
|
+
version: "0"
|
|
62
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
|
+
none: false
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
hash: 3
|
|
68
|
+
segments:
|
|
69
|
+
- 0
|
|
70
|
+
version: "0"
|
|
71
|
+
requirements: []
|
|
72
|
+
|
|
73
|
+
rubyforge_project:
|
|
74
|
+
rubygems_version: 1.3.7
|
|
75
|
+
signing_key:
|
|
76
|
+
specification_version: 3
|
|
77
|
+
summary: Russian faker
|
|
78
|
+
test_files:
|
|
79
|
+
- spec/ryba_spec.rb
|
|
80
|
+
- spec/spec_helper.rb
|