russian_inflect 1.0.0 → 1.0.1

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