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.
@@ -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
@@ -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
+
@@ -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
@@ -0,0 +1,9 @@
1
+ require 'spec'
2
+
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
4
+
5
+ require 'ryba'
6
+
7
+ Spec::Runner.configure do |config|
8
+
9
+ end
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