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.2'
- @@cache =
Кеширование успешных результатов запроса к веб-сервису
{}
Class Method Summary collapse
-
.clear_cache ⇒ Object
Очистить кеш.
-
.inflections(word) ⇒ Object
Возвращает массив склонений (размером
INFLECTIONS_COUNT
) для словаword
.
Class Method Details
.clear_cache ⇒ Object
Очистить кеш
62 63 64 |
# File 'lib/morpher_inflect.rb', line 62 def self.clear_cache @@cache.clear end |
.inflections(word) ⇒ Object
Возвращает массив склонений (размером INFLECTIONS_COUNT
) для слова word
.
Если слово не найдено в словаре, будет возвращен массив размерностью INFLECTIONS_COUNT
, заполненный этим словом.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/morpher_inflect.rb', line 34 def self.inflections(word) inflections = [] lookup = cache_lookup(word) return lookup if lookup get = Inflection.new.get(word) rescue nil # если поднято исключение, переходим к третьему варианту и не кешируем case get when Array # Морфер вернул массив склонений inflections = [word] + get # Кладем в кеш cache_store(word, inflections) when String # Морфер вернул не массив склонений (слово не найдено в словаре), # а только строку. Скорее всего это ошибка. Забиваем оригинальным словом inflections.fill(word, 0..INFLECTIONS_COUNT-1) # Кладем в кеш cache_store(word, inflections) else # Забиваем варианты склонений оригиналом inflections.fill(word, 0..INFLECTIONS_COUNT-1) end inflections end |