Module: MorpherInflecter
- Defined in:
- lib/morpher_inflecter.rb,
lib/morpher_inflecter/version.rb
Defined Under Namespace
Classes: Inflection
Constant Summary collapse
- URL =
'https://ws3.morpher.ru/russian/declension'.freeze
- CASES =
Падежи
%w(И Р Д В Т П)
- ERROR_CODES =
{ "1" => ["402", "Превышен лимит на количество запросов в сутки. Перейдите на следующий тарифный план."], "3" => ["403", "IP заблокирован."], "4" => ["495", "Склонение числительных в declension не поддерживается. Используйте метод spell."], "5" => ["496", "Не найдено русских слов."], "6" => ["400", "Не указан обязательный параметр s."], "7" => ["402", "Необходимо оплатить услугу."], "9" => ["498", "Данный token не найден."], "10" => ["497", "Неверный формат токена."], "11" => ["500", "Ошибка сервера."], "12" => ["494", "Указаны неправильные флаги."] }
- VERSION =
"0.0.4"
- @@cache =
Кеширование успешных результатов запроса к веб-сервису
{}
Class Method Summary collapse
-
.clear_cache ⇒ Object
Очистить кеш.
-
.inflections(word, options = {}) ⇒ Object
Возвращает хэш склонений в следуюшем формате => [], :plural => [] Если слово не найдено в словаре или произошла ошибка, будет возвращен код ошибки { error: “XXX”, code: “Y”, message: ‘error message’ }.
Class Method Details
.clear_cache ⇒ Object
Очистить кеш
86 87 88 |
# File 'lib/morpher_inflecter.rb', line 86 def self.clear_cache @@cache.clear end |
.inflections(word, options = {}) ⇒ Object
Возвращает хэш склонений в следуюшем формате => [], :plural => [] Если слово не найдено в словаре или произошла ошибка, будет возвращен код ошибки { error: “XXX”, code: “Y”, message: ‘error message’ }
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/morpher_inflecter.rb', line 53 def self.inflections(word, = {}) lookup = cache_lookup(word) return lookup if lookup resp = Inflection.new.get(word, [:token]) inflections = {} if resp[:error] inflections = resp else plural_only = resp['множественное'].nil? inflections[:singular] = [] unless plural_only inflections[:plural] = [] CASES.each do |_case| i = _case == 'И' ? word : resp[_case] if plural_only inflections[:plural] << i else inflections[:singular] << i inflections[:plural] << resp['множественное'][_case] end end cache_store(word, inflections) end inflections end |