russian_inflect 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5381c2481facf07752dd9021d46a529f59c0c948
4
- data.tar.gz: 145b237507fcf48233128505432a5d606b24478e
3
+ metadata.gz: f0d67cfe5db6bc84834af246ba504c8e662769f0
4
+ data.tar.gz: e229c6ceac87150cfcdb1681377b35dd70a997d5
5
5
  SHA512:
6
- metadata.gz: 652c3c75efa74eae5cf7fadeeb070aaa019d788c5f31cffefb25cddfa0489c3f3954262fa50edb48d4e71ac3df76df09de6b0494bf4cc1bebc5eefc80c5661ad
7
- data.tar.gz: 8d6bfbc904c7f181775a15bfc2af9d27178fb19f9e61cb865097370663fdbf31a30d3d622b6dd65abdef584203ae8b242dba966d2948fa74c121e3d3f7ce430f
6
+ metadata.gz: 993b69cdb146f2db194401a1c6a8f3466f0864f3a9cfbddcd5cd5a831cbe0def7e46ea6e3e5fdd545f2706d531cfcfd75b0f95b24d017aa402ca64f53362804f
7
+ data.tar.gz: 508c950843829e4235a41592e6f24e935bcc4c865242a63fecf2a7861b09793a0a3e1b2d14af2675ca71dfe97a9ae85d9de0c638e0e43460fe971237089b4792
@@ -1,3 +1,3 @@
1
1
  class RussianInflect
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -37,7 +37,7 @@ class RussianInflect
37
37
  inflected_words = words.map do |word|
38
38
  unless after_prepositions
39
39
  downcased = UnicodeUtils.downcase(word)
40
- if Rules.prepositions.include?(downcased)
40
+ if preposition?(downcased)
41
41
  after_prepositions = true
42
42
  else
43
43
  result = Rules[case_group].inflect(downcased, gcase)
@@ -56,8 +56,12 @@ class RussianInflect
56
56
  inflected_words.join(' ')
57
57
  end
58
58
 
59
- def self.inflect(text, gcase)
60
- new(text).to_case(gcase)
59
+ def preposition?(word)
60
+ Rules.prepositions.include?(word) || GROUPS[self.class.detect_case_group(word)] != @case_group
61
+ end
62
+
63
+ def self.inflect(text, gcase, force_downcase: false)
64
+ new(text).to_case(gcase, force_downcase: force_downcase)
61
65
  end
62
66
 
63
67
  def self.detect_case_group(noun)
@@ -7,22 +7,27 @@ describe RussianInflect do
7
7
  source = RussianInflect.new("Хорошая погода")
8
8
  source.test_each_case "Хорошая погода", "Хорошей погоды", "Хорошей погоде", "Хорошую погоду", "Хорошей погодой", "Хорошей погоде"
9
9
  end
10
-
10
+
11
11
  it "должен правильно склонять словосочение «Большой куш»" do
12
12
  source = RussianInflect.new("Большой куш")
13
13
  source.test_each_case "Большой куш", "Большого куша", "Большому кушу", "Большой куш", "Большим кушем", "Большом куше"
14
14
  end
15
-
15
+
16
16
  it "должен правильно склонять словосочение «Синее море»" do
17
17
  source = RussianInflect.new("Синее море")
18
18
  source.test_each_case "Синее море", "Синего моря", "Синему морю", "Синее море", "Синим морем", "Синем море"
19
19
  end
20
-
20
+
21
21
  it "должен правильно склонять словосочение «Красное вино»" do
22
22
  source = RussianInflect.new("Красное вино")
23
23
  source.test_each_case "Красное вино", "Красного вина", "Красному вину", "Красное вино", "Красным вином", "Красном вине"
24
24
  end
25
-
25
+
26
+ it "должен правильно склонять словосочение «Накладка моторного отсека»" do
27
+ source = RussianInflect.new("Накладка моторного отсека")
28
+ source.test_each_case "Накладка моторного отсека", "Накладки моторного отсека", "Накладке моторного отсека", "Накладку моторного отсека", "Накладкой моторного отсека", "Накладке моторного отсека"
29
+ end
30
+
26
31
  it "должен правильно склонять слово «Комментарий»" do
27
32
  source = RussianInflect.new("Комментарий")
28
33
  source.test_each_case "Комментарий", "Комментария", "Комментарию", "Комментарий", "Комментарием", "Комментарии"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: russian_inflect
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tõnis Simo