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.
Files changed (3) hide show
  1. data/README.md +10 -1
  2. data/lib/petrovich/extension.rb +13 -25
  3. 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
@@ -18,26 +18,10 @@ class Petrovich
18
18
  # [:+lastname+]
19
19
  # Указывает метод, возвращающий фамилию
20
20
  #
21
- # [:+order+]
22
- # Задаёт порядок составляющих имени для их установки или вывода при использовании +:fullname+
23
- #
24
- # [:+fullname+]
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
- :lastname => nil,
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
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-22 00:00:00.000000000 Z
12
+ date: 2013-04-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: unicode_utils