petrovich 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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