petrovich 0.0.4 → 0.0.5
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.md +10 -1
- data/lib/petrovich/extension.rb +13 -25
- metadata +2 -2
data/README.md
CHANGED
@@ -46,7 +46,8 @@ class User < ActiveRecord::Base
|
|
46
46
|
|
47
47
|
petrovich :firstname => :my_firstname,
|
48
48
|
:middlename => :my_middlename,
|
49
|
-
:lastname => :my_lastname
|
49
|
+
:lastname => :my_lastname,
|
50
|
+
:gender => :my_gender
|
50
51
|
|
51
52
|
def my_firstname
|
52
53
|
'Пётр'
|
@@ -59,6 +60,13 @@ class User < ActiveRecord::Base
|
|
59
60
|
def my_lastname
|
60
61
|
'Петренко'
|
61
62
|
end
|
63
|
+
|
64
|
+
# Если пол не был указан, используется автоматическое определение
|
65
|
+
# пола на основе отчества. Если отчество так же не было указано,
|
66
|
+
# пытаемся определить правильное слконение на основе файла правил.
|
67
|
+
def my_gender
|
68
|
+
:male # :male, :female или :both
|
69
|
+
end
|
62
70
|
end
|
63
71
|
```
|
64
72
|
|
@@ -68,6 +76,7 @@ end
|
|
68
76
|
class Person
|
69
77
|
include Petrovich::Extension
|
70
78
|
|
79
|
+
# А здесь мы не указали пол - он будет определяться на основе отчества
|
71
80
|
petrovich :firstname => :name,
|
72
81
|
:middlename => :patronymic,
|
73
82
|
:lastname => :surname
|
data/lib/petrovich/extension.rb
CHANGED
@@ -18,26 +18,10 @@ class Petrovich
|
|
18
18
|
# [:+lastname+]
|
19
19
|
# Указывает метод, возвращающий фамилию
|
20
20
|
#
|
21
|
-
# [:+
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
# Задаёт или возвращает полное имя. Используется совместно с +:order+.
|
26
|
-
#
|
27
|
-
# petrovich :fullname => :my_fullname
|
28
|
-
# :order => [:firstname, :middlename, :lastname]
|
29
|
-
#
|
30
|
-
# def my_fullname
|
31
|
-
# 'Аркадий Семёнович Дичко'
|
32
|
-
# end
|
33
|
-
#
|
34
|
-
# Далее при вызове метода вы получите:
|
35
|
-
#
|
36
|
-
# my_fullname_dative # => Аркадию Семёновичу Дичко
|
37
|
-
#
|
38
|
-
#
|
39
|
-
# [:+delimeter+]
|
40
|
-
# Задаёт разделитель для +:fullname+. По-умолчанию равен +/\s+/+
|
21
|
+
# [:+gender+]
|
22
|
+
# Указывает метод, возвращающий пол. Если пол не был указан, используется автоматическое определение
|
23
|
+
# пола на основе отчества. Если отчество так же не было указано, пытаемся определить правильное слконение
|
24
|
+
# на основе файла правил.
|
41
25
|
#
|
42
26
|
# Пример использования
|
43
27
|
#
|
@@ -46,7 +30,8 @@ class Petrovich
|
|
46
30
|
#
|
47
31
|
# petrovich :firstname => :my_firstname,
|
48
32
|
# :middlename => :my_middlename,
|
49
|
-
# :lastname => :my_lastname
|
33
|
+
# :lastname => :my_lastname,
|
34
|
+
# :gender => :my_gender
|
50
35
|
#
|
51
36
|
# def my_firstname
|
52
37
|
# 'Пётр'
|
@@ -59,6 +44,11 @@ class Petrovich
|
|
59
44
|
# def my_lastname
|
60
45
|
# 'Ларин'
|
61
46
|
# end
|
47
|
+
#
|
48
|
+
# def my_gender
|
49
|
+
# :male # :male, :female или :both
|
50
|
+
# end
|
51
|
+
#
|
62
52
|
# end
|
63
53
|
#
|
64
54
|
# Вы получите следующие методы
|
@@ -87,9 +77,7 @@ class Petrovich
|
|
87
77
|
:fullname => nil,
|
88
78
|
:firstname => nil,
|
89
79
|
:middlename => nil,
|
90
|
-
:
|
91
|
-
:order => [:lastname, :firstname, :middlename],
|
92
|
-
:delimeter => /\s+/
|
80
|
+
:gender => nil
|
93
81
|
}.merge(options)
|
94
82
|
end
|
95
83
|
end
|
@@ -99,7 +87,7 @@ class Petrovich
|
|
99
87
|
reflection = options.key(attribute.to_sym) or raise "No reflection for attribute '#{attribute}'!"
|
100
88
|
|
101
89
|
self.class.send(:define_method, method_name) do
|
102
|
-
rn = Petrovich.new
|
90
|
+
rn = Petrovich.new(options[:gender])
|
103
91
|
rn.send(reflection, name, gcase)
|
104
92
|
end
|
105
93
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: petrovich
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-04-
|
12
|
+
date: 2013-04-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: unicode_utils
|