be9-ryba 0.0.1 → 0.0.2
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/README.textile +18 -0
- data/VERSION.yml +1 -1
- data/lib/ryba/data.rb +5 -0
- data/lib/ryba/name.rb +5 -9
- data/lib/ryba/phone_number.rb +38 -0
- data/lib/ryba.rb +16 -0
- data/spec/ryba_spec.rb +12 -0
- metadata +2 -1
data/README.textile
CHANGED
|
@@ -20,6 +20,7 @@ Ryba — попытка создать аналогичный генератор
|
|
|
20
20
|
|
|
21
21
|
Библиотека находится в активной разработке. На данный момент реализованы:
|
|
22
22
|
* Генерация имен.
|
|
23
|
+
* Генерация телефонов.
|
|
23
24
|
|
|
24
25
|
Ниже описан интерфейс для реализованных возможностей.
|
|
25
26
|
|
|
@@ -54,6 +55,23 @@ h2. Генерация имен
|
|
|
54
55
|
end
|
|
55
56
|
</pre></code>
|
|
56
57
|
|
|
58
|
+
h2. Генерация телефонов
|
|
59
|
+
|
|
60
|
+
Метод @Ryba::PhoneNumber.phone_number@.
|
|
61
|
+
|
|
62
|
+
<pre><code>
|
|
63
|
+
>> Ryba::PhoneNumber.phone_number
|
|
64
|
+
=> "2-26-47"
|
|
65
|
+
>> Ryba::PhoneNumber.phone_number
|
|
66
|
+
=> "431-15-94"
|
|
67
|
+
>> Ryba::PhoneNumber.phone_number
|
|
68
|
+
=> "8 (87829) 9-45-53"
|
|
69
|
+
>> Ryba::PhoneNumber.phone_number
|
|
70
|
+
=> "5515328"
|
|
71
|
+
>> Ryba::PhoneNumber.phone_number
|
|
72
|
+
=> "(2397) 94 78 14"
|
|
73
|
+
</code></pre>
|
|
74
|
+
|
|
57
75
|
h2. Лицензия
|
|
58
76
|
|
|
59
77
|
Библиотека ryba распространяется по лицензии MIT, см. файл MIT-LICENSE.
|
data/VERSION.yml
CHANGED
data/lib/ryba/data.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
module Ryba
|
|
2
2
|
module Data
|
|
3
|
+
# http://taina.aib.ru/names/man/man-a.htm
|
|
3
4
|
MaleNames = %w{
|
|
4
5
|
Абрам Авраам Ибрагим Аввакум Аввакуум Аббакум Август Августин
|
|
5
6
|
Авдей Авенир Аверьян Аверкий Авксентий Агап Агафон Агей Азарий
|
|
@@ -52,6 +53,7 @@ module Ryba
|
|
|
52
53
|
Эрик Эрнест Юлиан Юлий Юрий Юхим Яков Ян Януарий Яромир
|
|
53
54
|
Ярослав}.freeze
|
|
54
55
|
|
|
56
|
+
# http://taina.aib.ru/names/woman/woman-a.htm
|
|
55
57
|
FemaleNames = %w{
|
|
56
58
|
Августа Августина Аврора Агата Агафья Аглая Аглаида Агнесса
|
|
57
59
|
Агния Агриппина Ада Аделаида Аделина Адриана Аза Акулина
|
|
@@ -95,6 +97,7 @@ module Ryba
|
|
|
95
97
|
Эрнестина Эстер Эстера Юдита Юлия Юнона Ядвига Яна Янина
|
|
96
98
|
Ярослава}
|
|
97
99
|
|
|
100
|
+
# http://taina.aib.ru/otchectv/man/index.htm
|
|
98
101
|
MaleMiddleNames = %w{
|
|
99
102
|
Александрович Алексеевич Альбертович Анатольевич Андреевич
|
|
100
103
|
Антонович Аркадьевич Артемович Богданович Богуславович Борисович
|
|
@@ -110,6 +113,7 @@ module Ryba
|
|
|
110
113
|
Тарасович Тимофеевич Тимурович Федорович Феликсович Филиппович
|
|
111
114
|
Эдуардович Эльдарович Юрьевич Яковлевич Ярославович}
|
|
112
115
|
|
|
116
|
+
# http://taina.aib.ru/otchectv/woman/index.htm
|
|
113
117
|
FemaleMiddleNames = %w{
|
|
114
118
|
Александровна Алексеевна Альбертовна Анатольевна Андреевна
|
|
115
119
|
Антоновна Аркадьевна Артемовна Артуровна Архиповна Аскольдовна
|
|
@@ -127,6 +131,7 @@ module Ryba
|
|
|
127
131
|
Тимуровна Федоровна Феликсовна Филипповна Эдуардовна Эльдаровна
|
|
128
132
|
Юльевна Юрьевна Яковлевна}
|
|
129
133
|
|
|
134
|
+
# http://b23.ru/qiu
|
|
130
135
|
FamilyNames = %w{
|
|
131
136
|
Абакумов Абарников Абдулов Абрамов Авдеев Аверин Аверьянов
|
|
132
137
|
Авилов Автухов Агапов Агафонов Агейкин Ажищенков Азаров Аксаков
|
data/lib/ryba/name.rb
CHANGED
|
@@ -8,17 +8,17 @@ module Ryba
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def first_name(male = nil)
|
|
11
|
-
|
|
11
|
+
pick_with_gender(male, Ryba::Data::MaleNames, Ryba::Data::FemaleNames)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def middle_name(male = nil)
|
|
15
|
-
|
|
15
|
+
pick_with_gender(male, Ryba::Data::MaleMiddleNames, Ryba::Data::FemaleMiddleNames)
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def family_name(male = nil)
|
|
19
19
|
male = gender if male.nil?
|
|
20
20
|
|
|
21
|
-
famname =
|
|
21
|
+
famname = Ryba.pick(Ryba::Data::FamilyNames)
|
|
22
22
|
|
|
23
23
|
if famname.is_a? Array
|
|
24
24
|
famname[0] + famname[male ? 1 : 2]
|
|
@@ -29,13 +29,9 @@ module Ryba
|
|
|
29
29
|
|
|
30
30
|
private
|
|
31
31
|
|
|
32
|
-
def
|
|
32
|
+
def pick_with_gender(male, male_ary, female_ary)
|
|
33
33
|
male = gender if male.nil?
|
|
34
|
-
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def pick_element(ary)
|
|
38
|
-
ary[rand(ary.size)]
|
|
34
|
+
Ryba.pick(male ? male_ary : female_ary)
|
|
39
35
|
end
|
|
40
36
|
end
|
|
41
37
|
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/lib/ryba.rb
CHANGED
|
@@ -1,2 +1,18 @@
|
|
|
1
|
+
module Ryba
|
|
2
|
+
def self.numerify(number_string)
|
|
3
|
+
number_string.gsub('#') { rand(10).to_s }
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def self.pick(variants)
|
|
7
|
+
case variants
|
|
8
|
+
when Array
|
|
9
|
+
variants[rand(variants.size)]
|
|
10
|
+
when String
|
|
11
|
+
variants[rand(variants.length),1]
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
1
16
|
require File.join(File.dirname(__FILE__), 'ryba', 'data')
|
|
2
17
|
require File.join(File.dirname(__FILE__), 'ryba', 'name')
|
|
18
|
+
require File.join(File.dirname(__FILE__), 'ryba', 'phone_number')
|
data/spec/ryba_spec.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: be9-ryba
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- oleg dashevskii
|
|
@@ -27,6 +27,7 @@ files:
|
|
|
27
27
|
- lib/ryba
|
|
28
28
|
- lib/ryba/data.rb
|
|
29
29
|
- lib/ryba/name.rb
|
|
30
|
+
- lib/ryba/phone_number.rb
|
|
30
31
|
- lib/ryba.rb
|
|
31
32
|
- spec/spec_helper.rb
|
|
32
33
|
- spec/ryba_spec.rb
|