petrovich 1.0.0 → 1.0.1
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.
- checksums.yaml +4 -4
 - data/README.md +7 -7
 - data/Rakefile +5 -0
 - data/lib/petrovich/case/rule.rb +10 -4
 - data/lib/petrovich/case/rule/test.rb +2 -3
 - data/lib/petrovich/gender/rule.rb +2 -3
 - data/lib/petrovich/name.rb +7 -2
 - data/lib/petrovich/rule_set.rb +6 -4
 - data/lib/tasks/evaluate.rake +3 -2
 - data/rules/rules.yml +13 -10
 - metadata +7 -7
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 949de8e61c2087dace03572893fe90b5cbb4be2c
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 85b19751be033e064283de4cfa875d2b4f299ae6
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 75183e9e1cc24646a4a28b3fc8a7f3cc2f357bbfe079540a0ed160539bd3472978d2351f8d96159856b21f14cb191287aac2f6a41d73f08beb618c73658e8058
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 6de4c561b1dcf1379df536e481b80e4862d0b6f73f7badcc1e6a693b42ac4bcf3f1261f75a2a19a2c3b8c0e91f84f60373d7d0d2d1a064b779519efc4bc46ab6
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -5,7 +5,7 @@ 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            Petrovich также позволяет определять пол по имени, фамилии, отчеству.
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
            [](https://travis-ci.org/petrovich/petrovich-ruby)
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
            ## Установка
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
         @@ -48,13 +48,13 @@ Petrovich( 
     | 
|
| 
       48 
48 
     | 
    
         
             
            Petrovich(
         
     | 
| 
       49 
49 
     | 
    
         
             
              firstname: 'Иван',
         
     | 
| 
       50 
50 
     | 
    
         
             
              middlename: 'Петрович',
         
     | 
| 
       51 
     | 
    
         
            -
            ).to(:instrumental).middlename # => Петровича 
     | 
| 
      
 51 
     | 
    
         
            +
            ).to(:instrumental).middlename # => Петровича
         
     | 
| 
       52 
52 
     | 
    
         | 
| 
       53 
     | 
    
         
            -
            # Склонение с указанием пола. В данном  
     | 
| 
       54 
     | 
    
         
            -
            # человека, поэтому, если вам известен пол, всегда передавайте его в аргументах,
         
     | 
| 
      
 53 
     | 
    
         
            +
            # Склонение с указанием пола. В данном случае, по имени и фамилии невозможно определить пол
         
     | 
| 
      
 54 
     | 
    
         
            +
            # человека, поэтому, если вам известен пол, то всегда передавайте его в аргументах,
         
     | 
| 
       55 
55 
     | 
    
         
             
            # чтобы склонение было верным.
         
     | 
| 
       56 
56 
     | 
    
         
             
            # Если пол неизвестен, то гем попытается определить его самостоятельно.
         
     | 
| 
       57 
     | 
    
         
            -
            # Пол должен быть указан в виде строки или  
     | 
| 
      
 57 
     | 
    
         
            +
            # Пол должен быть указан в виде строки или символа. Возможные значения: male, female.
         
     | 
| 
       58 
58 
     | 
    
         
             
            Petrovich(
         
     | 
| 
       59 
59 
     | 
    
         
             
              lastname: 'Андрейчук',
         
     | 
| 
       60 
60 
     | 
    
         
             
              firstname: 'Саша',
         
     | 
| 
         @@ -143,8 +143,8 @@ petrovich -l Иванов -f Иван -m Иванович -t accusative -o 
     | 
|
| 
       143 
143 
     | 
    
         
             
            Наши приоритеты следующие:
         
     | 
| 
       144 
144 
     | 
    
         | 
| 
       145 
145 
     | 
    
         
             
            * Повысить аккуратность склонения женских фамилий до 98%
         
     | 
| 
       146 
     | 
    
         
            -
            * Обрабатывать ФИО в тексте. Например, чтобы выделить ФИО в виде гиперссылки. 
     | 
| 
       147 
     | 
    
         
            -
            * Перевести реализацию на язык Rust. Это даст возможность использовать библиотеку в различных языках, подключая её через FFI и не потребует отдельной реализации  
     | 
| 
      
 146 
     | 
    
         
            +
            * Обрабатывать ФИО (возможно просто фамилии, имена и так далее) в тексте. Например, чтобы выделить ФИО в виде гиперссылки.
         
     | 
| 
      
 147 
     | 
    
         
            +
            * Перевести реализацию на язык Rust. Это даст возможность использовать библиотеку в различных языках, подключая её через FFI и не потребует отдельной реализации для каждого языка. Это также увеличит скорость работы библиотеки.
         
     | 
| 
       148 
148 
     | 
    
         | 
| 
       149 
149 
     | 
    
         
             
            Если вы хотите помочь этому проекту, вы можете реализовать любую
         
     | 
| 
       150 
150 
     | 
    
         
             
            вышеперечисленную идею. Перед этим желательно связаться с нами,
         
     | 
    
        data/Rakefile
    CHANGED
    
    
    
        data/lib/petrovich/case/rule.rb
    CHANGED
    
    | 
         @@ -12,20 +12,26 @@ module Petrovich 
     | 
|
| 
       12 
12 
     | 
    
         
             
                    @tests        = opts[:tests]
         
     | 
| 
       13 
13 
     | 
    
         
             
                    @tags         = []
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
      
 15 
     | 
    
         
            +
                    @tests_regexp = Regexp.union(Array(@tests).map(&:suffix))
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       15 
17 
     | 
    
         
             
                    assert_name_part!(@as)
         
     | 
| 
       16 
18 
     | 
    
         
             
                  end
         
     | 
| 
       17 
19 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
                  def match?(name, match_gender, match_as)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  def match?(name, match_gender, match_as, known_gender = false)
         
     | 
| 
       19 
21 
     | 
    
         
             
                    assert_name_part!(match_as)
         
     | 
| 
       20 
22 
     | 
    
         | 
| 
       21 
23 
     | 
    
         
             
                    return false unless match_as == as
         
     | 
| 
       22 
24 
     | 
    
         | 
| 
       23 
25 
     | 
    
         
             
                    match_gender = match_gender.to_sym.downcase
         
     | 
| 
       24 
26 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
                     
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
      
 27 
     | 
    
         
            +
                    if known_gender
         
     | 
| 
      
 28 
     | 
    
         
            +
                      return false if match_gender != gender
         
     | 
| 
      
 29 
     | 
    
         
            +
                    else
         
     | 
| 
      
 30 
     | 
    
         
            +
                      return false if gender != :female && match_gender == :female
         
     | 
| 
      
 31 
     | 
    
         
            +
                      return false if gender == :female && match_gender != :female
         
     | 
| 
      
 32 
     | 
    
         
            +
                    end
         
     | 
| 
       27 
33 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
                     
     | 
| 
      
 34 
     | 
    
         
            +
                    !!name.match(@tests_regexp)
         
     | 
| 
       29 
35 
     | 
    
         
             
                  end
         
     | 
| 
       30 
36 
     | 
    
         | 
| 
       31 
37 
     | 
    
         
             
                  # Is this exceptional rule?
         
     | 
| 
         @@ -6,12 +6,11 @@ module Petrovich 
     | 
|
| 
       6 
6 
     | 
    
         
             
                    attr_reader :suffix
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
                    def initialize(suffix)
         
     | 
| 
       9 
     | 
    
         
            -
                      @suffix =  
     | 
| 
      
 9 
     | 
    
         
            +
                      @suffix = /#{suffix}$/i
         
     | 
| 
       10 
10 
     | 
    
         
             
                    end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
                    def match?(name)
         
     | 
| 
       13 
     | 
    
         
            -
                      name 
     | 
| 
       14 
     | 
    
         
            -
                      suffix == name.slice([name.size - suffix.size, 0].max..-1)
         
     | 
| 
      
 13 
     | 
    
         
            +
                      !!name.match(suffix)
         
     | 
| 
       15 
14 
     | 
    
         
             
                    end
         
     | 
| 
       16 
15 
     | 
    
         | 
| 
       17 
16 
     | 
    
         
             
                    def inspect
         
     | 
| 
         @@ -8,14 +8,13 @@ module Petrovich 
     | 
|
| 
       8 
8 
     | 
    
         
             
                  def initialize(opts)
         
     | 
| 
       9 
9 
     | 
    
         
             
                    @gender = opts[:gender]
         
     | 
| 
       10 
10 
     | 
    
         
             
                    @as = opts[:as]
         
     | 
| 
       11 
     | 
    
         
            -
                    @suffix = opts[:suffix]
         
     | 
| 
      
 11 
     | 
    
         
            +
                    @suffix = /#{opts[:suffix]}$/i
         
     | 
| 
       12 
12 
     | 
    
         
             
                  end
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                  def match?(name, match_as)
         
     | 
| 
       15 
15 
     | 
    
         
             
                    return false unless match_as == as
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
                    name 
     | 
| 
       18 
     | 
    
         
            -
                    @suffix == name.slice([name.size - @suffix.size, 0].max..-1)
         
     | 
| 
      
 17 
     | 
    
         
            +
                    !!name.match(suffix)
         
     | 
| 
       19 
18 
     | 
    
         
             
                  end
         
     | 
| 
       20 
19 
     | 
    
         
             
                end
         
     | 
| 
       21 
20 
     | 
    
         
             
              end
         
     | 
    
        data/lib/petrovich/name.rb
    CHANGED
    
    | 
         @@ -17,13 +17,17 @@ module Petrovich 
     | 
|
| 
       17 
17 
     | 
    
         
             
                end
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                def gender
         
     | 
| 
       20 
     | 
    
         
            -
                  if  
     | 
| 
      
 20 
     | 
    
         
            +
                  if known_gender?
         
     | 
| 
       21 
21 
     | 
    
         
             
                    @gender.to_sym
         
     | 
| 
       22 
22 
     | 
    
         
             
                  else
         
     | 
| 
       23 
23 
     | 
    
         
             
                    Gender.detect(@name)
         
     | 
| 
       24 
24 
     | 
    
         
             
                  end
         
     | 
| 
       25 
25 
     | 
    
         
             
                end
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
      
 27 
     | 
    
         
            +
                def known_gender?
         
     | 
| 
      
 28 
     | 
    
         
            +
                  !@gender.nil? && [:male, :female, :androgynous].include?(@gender.to_sym)
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
       27 
31 
     | 
    
         
             
                def male?
         
     | 
| 
       28 
32 
     | 
    
         
             
                  Gender.detect(@name) == :male
         
     | 
| 
       29 
33 
     | 
    
         
             
                end
         
     | 
| 
         @@ -55,7 +59,8 @@ module Petrovich 
     | 
|
| 
       55 
59 
     | 
    
         | 
| 
       56 
60 
     | 
    
         
             
                def inflect(name, gender, name_case)
         
     | 
| 
       57 
61 
     | 
    
         
             
                  inflector = Inflector.new(name, gender, name_case)
         
     | 
| 
       58 
     | 
    
         
            -
                   
     | 
| 
      
 62 
     | 
    
         
            +
                  known_gender = known_gender?
         
     | 
| 
      
 63 
     | 
    
         
            +
                  find = proc { |x| @rule_set.find_all_case_rules(name.send(x), gender, x, known_gender) }
         
     | 
| 
       59 
64 
     | 
    
         | 
| 
       60 
65 
     | 
    
         
             
                  if !name.lastname.nil? && (rules = find.call(:lastname))
         
     | 
| 
       61 
66 
     | 
    
         
             
                    name.lastname = inflector.inflect_lastname(rules)
         
     | 
    
        data/lib/petrovich/rule_set.rb
    CHANGED
    
    | 
         @@ -23,8 +23,9 @@ module Petrovich 
     | 
|
| 
       23 
23 
     | 
    
         
             
                  @gender_rules << rule
         
     | 
| 
       24 
24 
     | 
    
         
             
                end
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
                def find_all_case_rules(name, gender, as)
         
     | 
| 
       27 
     | 
    
         
            -
                  name.split('-') 
     | 
| 
      
 26 
     | 
    
         
            +
                def find_all_case_rules(name, gender, as, known_gender = false)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  parts = name.split('-')
         
     | 
| 
      
 28 
     | 
    
         
            +
                  parts.map.with_index { |part, index| find_case_rule(part, gender, as, (index == parts.count-1) && known_gender) }
         
     | 
| 
       28 
29 
     | 
    
         
             
                end
         
     | 
| 
       29 
30 
     | 
    
         | 
| 
       30 
31 
     | 
    
         
             
                def find_all_gender_rules(name, as)
         
     | 
| 
         @@ -78,8 +79,9 @@ module Petrovich 
     | 
|
| 
       78 
79 
     | 
    
         
             
                  end
         
     | 
| 
       79 
80 
     | 
    
         
             
                end
         
     | 
| 
       80 
81 
     | 
    
         | 
| 
       81 
     | 
    
         
            -
                def find_case_rule(name, gender, as)
         
     | 
| 
       82 
     | 
    
         
            -
                  @case_rules.find { |rule| rule.match?(name, gender, as) }
         
     | 
| 
      
 82 
     | 
    
         
            +
                def find_case_rule(name, gender, as, known_gender = false)
         
     | 
| 
      
 83 
     | 
    
         
            +
                  found_rule = @case_rules.find { |rule| rule.match?(name, gender, as, known_gender) }
         
     | 
| 
      
 84 
     | 
    
         
            +
                  found_rule || @case_rules.find { |rule| rule.match?(name, :androgynous, as) }
         
     | 
| 
       83 
85 
     | 
    
         
             
                end
         
     | 
| 
       84 
86 
     | 
    
         | 
| 
       85 
87 
     | 
    
         
             
                def find_gender_rule(name, as)
         
     | 
    
        data/lib/tasks/evaluate.rake
    CHANGED
    
    | 
         @@ -3,7 +3,8 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            require 'csv'
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            def check!(errors, correct, total, lemma, gender, gcase, expected)
         
     | 
| 
       6 
     | 
    
         
            -
               
     | 
| 
      
 6 
     | 
    
         
            +
              petrovich = ENV['USE_GENDER'] ? Petrovich(lastname: lemma, gender: gender) : Petrovich(lastname: lemma)
         
     | 
| 
      
 7 
     | 
    
         
            +
              actual = Petrovich::Unicode.upcase(petrovich.public_send(gcase).lastname)
         
     | 
| 
       7 
8 
     | 
    
         
             
              total[[gender, gcase]] += 1
         
     | 
| 
       8 
9 
     | 
    
         
             
              if actual == expected
         
     | 
| 
       9 
10 
     | 
    
         
             
                correct[[gender, gcase]] += 1
         
     | 
| 
         @@ -16,7 +17,7 @@ end 
     | 
|
| 
       16 
17 
     | 
    
         | 
| 
       17 
18 
     | 
    
         
             
            desc 'Evaluate the inflector on lastnames'
         
     | 
| 
       18 
19 
     | 
    
         
             
            task :evaluate => :petrovich do
         
     | 
| 
       19 
     | 
    
         
            -
              filename = File.expand_path('../../../ 
     | 
| 
      
 20 
     | 
    
         
            +
              filename = File.expand_path('../../../eval/surnames.tsv', __FILE__)
         
     | 
| 
       20 
21 
     | 
    
         
             
              errors_filename = ENV['errors'] || 'errors.tsv'
         
     | 
| 
       21 
22 
     | 
    
         | 
| 
       22 
23 
     | 
    
         
             
              correct, total = Hash.new(0), Hash.new(0)
         
     | 
    
        data/rules/rules.yml
    CHANGED
    
    | 
         @@ -36,10 +36,6 @@ lastname: 
     | 
|
| 
       36 
36 
     | 
    
         
             
                  test: [вий, сой, цой, хой]
         
     | 
| 
       37 
37 
     | 
    
         
             
                  mods: [-я, -ю, -я, -ем, -е]
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
     | 
    
         
            -
                - gender: androgynous
         
     | 
| 
       40 
     | 
    
         
            -
                  test: [я]
         
     | 
| 
       41 
     | 
    
         
            -
                  mods: [., ., ., ., .]
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
39 
     | 
    
         
             
              suffixes:
         
     | 
| 
       44 
40 
     | 
    
         
             
                - gender: female
         
     | 
| 
       45 
41 
     | 
    
         
             
                  test: [б, в, г, д, ж, з, й, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш, щ, ъ, ь]
         
     | 
| 
         @@ -104,11 +100,16 @@ lastname: 
     | 
|
| 
       104 
100 
     | 
    
         
             
                  test: [ова, ева, на]
         
     | 
| 
       105 
101 
     | 
    
         
             
                  mods: [-ой, -ой, -у, -ой, -ой]
         
     | 
| 
       106 
102 
     | 
    
         | 
| 
       107 
     | 
    
         
            -
                # Басалыга, Лазука, Пидкуймуха, Бобча, Гуща, Рогожа,  
     | 
| 
      
 103 
     | 
    
         
            +
                # Басалыга, Лазука, Пидкуймуха, Бобча, Гуща, Рогожа, Кваша
         
     | 
| 
       108 
104 
     | 
    
         
             
                - gender: androgynous
         
     | 
| 
       109 
     | 
    
         
            -
                  test: [га, ка, ха, ча, ща, жа,  
     | 
| 
      
 105 
     | 
    
         
            +
                  test: [га, ка, ха, ча, ща, жа, ша]
         
     | 
| 
       110 
106 
     | 
    
         
             
                  mods: [-и, -е, -у, -ой, -е]
         
     | 
| 
       111 
107 
     | 
    
         | 
| 
      
 108 
     | 
    
         
            +
                # Глоба, Хакамада, Хамза, Бульба
         
     | 
| 
      
 109 
     | 
    
         
            +
                - gender: androgynous
         
     | 
| 
      
 110 
     | 
    
         
            +
                  test: [а]
         
     | 
| 
      
 111 
     | 
    
         
            +
                  mods: [-ы, -е, -у, -ой, -е]
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
       112 
113 
     | 
    
         
             
                # Белоконь
         
     | 
| 
       113 
114 
     | 
    
         
             
                - gender: male
         
     | 
| 
       114 
115 
     | 
    
         
             
                  test: [ь]
         
     | 
| 
         @@ -327,13 +328,11 @@ gender: 
     | 
|
| 
       327 
328 
     | 
    
         
             
                # не будет найдено совпадений, то фамилия будет считаться андрогенной.
         
     | 
| 
       328 
329 
     | 
    
         
             
                female:
         
     | 
| 
       329 
330 
     | 
    
         
             
                  - ова
         
     | 
| 
       330 
     | 
    
         
            -
                  -  
     | 
| 
      
 331 
     | 
    
         
            +
                  - ая
         
     | 
| 
       331 
332 
     | 
    
         
             
                  - на
         
     | 
| 
       332 
333 
     | 
    
         
             
                  - ина
         
     | 
| 
       333 
334 
     | 
    
         
             
                  - ева
         
     | 
| 
       334 
     | 
    
         
            -
                  - вая
         
     | 
| 
       335 
335 
     | 
    
         
             
                  - ска
         
     | 
| 
       336 
     | 
    
         
            -
                  - ная
         
     | 
| 
       337 
336 
     | 
    
         
             
                male:
         
     | 
| 
       338 
337 
     | 
    
         
             
                  - кий
         
     | 
| 
       339 
338 
     | 
    
         
             
                  - ов
         
     | 
| 
         @@ -373,7 +372,6 @@ gender: 
     | 
|
| 
       373 
372 
     | 
    
         
             
                  - ир
         
     | 
| 
       374 
373 
     | 
    
         
             
                  - их
         
     | 
| 
       375 
374 
     | 
    
         
             
                  - ри
         
     | 
| 
       376 
     | 
    
         
            -
                  - ис
         
     | 
| 
       377 
375 
     | 
    
         
             
                  - аф
         
     | 
| 
       378 
376 
     | 
    
         
             
                  - ор
         
     | 
| 
       379 
377 
     | 
    
         
             
                  - рь
         
     | 
| 
         @@ -439,5 +437,10 @@ gender: 
     | 
|
| 
       439 
437 
     | 
    
         
             
              middlename:
         
     | 
| 
       440 
438 
     | 
    
         
             
                female:
         
     | 
| 
       441 
439 
     | 
    
         
             
                  - на
         
     | 
| 
      
 440 
     | 
    
         
            +
                  - кызы
         
     | 
| 
      
 441 
     | 
    
         
            +
                  - гызы
         
     | 
| 
       442 
442 
     | 
    
         
             
                male:
         
     | 
| 
       443 
443 
     | 
    
         
             
                  - ич
         
     | 
| 
      
 444 
     | 
    
         
            +
                  - оглы
         
     | 
| 
      
 445 
     | 
    
         
            +
                  - улы
         
     | 
| 
      
 446 
     | 
    
         
            +
                  - уулу
         
     | 
    
        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: 1.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Andrew Kozlov
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2016- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2016-07-19 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: commander
         
     | 
| 
         @@ -67,11 +67,11 @@ dependencies: 
     | 
|
| 
       67 
67 
     | 
    
         
             
                - - ">="
         
     | 
| 
       68 
68 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       69 
69 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       70 
     | 
    
         
            -
            description: A library  
     | 
| 
       71 
     | 
    
         
            -
              and middle names. 
     | 
| 
      
 70 
     | 
    
         
            +
            description: A morphological library for Russian anthroponyms, such as first names,
         
     | 
| 
      
 71 
     | 
    
         
            +
              last names, and middle names.
         
     | 
| 
       72 
72 
     | 
    
         
             
            email:
         
     | 
| 
       73 
73 
     | 
    
         
             
            - demerest@gmail.com
         
     | 
| 
       74 
     | 
    
         
            -
            - dmitry@ 
     | 
| 
      
 74 
     | 
    
         
            +
            - dmitry.ustalov@gmail.com
         
     | 
| 
       75 
75 
     | 
    
         
             
            executables: []
         
     | 
| 
       76 
76 
     | 
    
         
             
            extensions: []
         
     | 
| 
       77 
77 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
         @@ -113,8 +113,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       113 
113 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       114 
114 
     | 
    
         
             
            requirements: []
         
     | 
| 
       115 
115 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       116 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 116 
     | 
    
         
            +
            rubygems_version: 2.5.1
         
     | 
| 
       117 
117 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       118 
118 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       119 
     | 
    
         
            -
            summary:  
     | 
| 
      
 119 
     | 
    
         
            +
            summary: Petrovich, an inflector for Russian anthroponyms.
         
     | 
| 
       120 
120 
     | 
    
         
             
            test_files: []
         
     |