Module: MorpherInflect

Defined in:
lib/morpher_inflect.rb,
lib/morpher_inflect/version.rb

Defined Under Namespace

Classes: Inflection

Constant Summary collapse

INFLECTIONS_COUNT =

Число доступных вариантов склонений

6
VERSION =
'0.0.3'
@@cache =

Кеширование успешных результатов запроса к веб-сервису

{}

Class Method Summary collapse

Class Method Details

.clear_cacheObject



52
53
54
# File 'lib/morpher_inflect.rb', line 52

def clear_cache
  @@cache.clear
end

.inflections(word) ⇒ Object

Возвращает массив склонений (им., род., дат., вин., твор., предл.) для слова word.

Если слово не найдено в словаре, в массиве вместо всех склонений будет word. Повторяет исторический API gem yandex-inflect.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/morpher_inflect.rb', line 33

def inflections(word)
  lookup = cache_lookup(word)
  return lookup if lookup

  response = Inflection.new.get(word) rescue nil
  if response && response.code == 200
    # Морфер вернул хеш склонений
    inflections = successful_result(word, response)
    # Кладем в кеш
    cache_store(word, inflections)
  else
    # Морфер вернул код ошибки (слово не найдено в словаре),
    # Забиваем оригинальным словом
    inflections = problematic_result(word)
    # Не сохраняем в кэше, может в другой раз больше повезет.
  end
  inflections
end