Class: Tr8n::RussianNumericRule
- Inherits:
-
NumericRule
- Object
- ActiveRecord::Base
- LanguageRule
- NumericRule
- Tr8n::RussianNumericRule
- Defined in:
- app/models/tr8n/integration/ru/russian_numeric_rule.rb
Overview
This is an example of how you could implement the transform function for the default transform_tokens if your default site language is Russian
Class Method Summary collapse
-
.default_transform(*args) ⇒ Object
params: [singular form, plural form1, plural form2].
-
.transform(*args) ⇒ Object
FORM: [object, (ends in 1, but not in 11), (ends in 2, 3, 4 and is not 12, 13, 14), (ends in 0, 5, 6, 7, 8, 9, 11, 12, 13, 14)] | собака, собаки, собак | сообщение, сообщения, сообщений.
Methods inherited from NumericRule
default_rules_for, dependency, #describe_partial_rule, description, #description, #evaluate, evaluate_rule_fragment, #humanize_description, #humanize_values, humanize_values, number_token_value, #number_token_value, operator_options, rule_options, #sanitize_values, sanitize_values, suffixes, #to_hash
Methods inherited from LanguageRule
by_id, #clear_cache, create_from_sync_hash, #definition, dependant?, dependency, dependency_label, #description, #destroy_with_log!, #evaluate, for, humanize_values, keyword, options, sanitize_values, #save_with_log!, suffixes, #to_sync_hash, #token_description, transformable?
Class Method Details
.default_transform(*args) ⇒ Object
params: [singular form, plural form1, plural form2]
56 57 58 59 60 61 62 |
# File 'app/models/tr8n/integration/ru/russian_numeric_rule.rb', line 56 def self.default_transform(*args) if args.size != 3 raise Tr8n::Exception.new("Invalid transform arguments for number token") end args[2] end |
.transform(*args) ⇒ Object
FORM: [object, (ends in 1, but not in 11), (ends in 2, 3, 4 and is not 12, 13, 14), (ends in 0, 5, 6, 7, 8, 9, 11, 12, 13, 14)] | собака, собаки, собак | сообщение, сообщения, сообщений
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'app/models/tr8n/integration/ru/russian_numeric_rule.rb', line 33 def self.transform(*args) if args.size != 4 raise Tr8n::Exception.new("Invalid transform arguments for number token") end object = args[0] object_value = number_token_value(object) unless object_value raise Tr8n::Exception.new("Token #{object.class.name} does not respond to #{Tr8n::Config.rules_engine[:numeric_rule][:object_method]}") end string_value = object_value.to_s if string_value.last == "1" and string_value != "11" return args[1] elsif ['2', '3', '4'].include?(string_value.last) and not ['12', '13', '14'].include?(string_value) return args[2] end args[3] end |