RussianInflect

Склонение по падежам заголовков на русском языке.

Многое подсмотрено в геме petrovich. Различие в том, что RussianInflect склоняет не имена и фамилии, а словосочетания, например, названия товаров.

Installation

Add this line to your application's Gemfile:

gem 'russian_inflect'

And then execute:

$ bundle

Or install it yourself as:

$ gem install russian_inflect

Usage

RussianInflect.inflect("Хорошая погода", :nominative)     # => Хорошая погода
RussianInflect.inflect("Хорошая погода", :genitive)       # => Хорошей погоды
RussianInflect.inflect("Хорошая погода", :dative)         # => Хорошей погоде
RussianInflect.inflect("Хорошая погода", :accusative)     # => Хорошую погоду
RussianInflect.inflect("Хорошая погода", :instrumental)   # => Хорошей погодой
RussianInflect.inflect("Хорошая погода", :prepositional)  # => Хорошей погоде

или

words = RussianInflect.new("Хорошая погода")
words.to_case :genitive     # => Хорошей погоды
words.to_case :dative       # => Хорошей погоде
# etc...

Помощь гему

  • Нужны тесты для всяких окончаний, исключений и т.п.
    Дополнять их просто: в spec/lib/russian_inflect_spec.rb нужно добавить пример словосочетания и правильные результаты склонения по аналогии с уже добавленными примерами.
  • Правила склонения пока далеки от идеала и тоже ждут своего Розенталя. Они похожи на правила из гема petrovich и находятся в lib/russian_inflect/rules.yml.
  • Как видите, ридми тоже не мешало бы переписать.