class Tr8n::Translation

Public Instance Methods

has_context_rules?() click to toggle source
# File lib/tr8n/translation.rb, line 37
def has_context_rules?
  context and context.any?
end
matches_rules?(token_values) click to toggle source
checks if the translation is valid for the given tokens

{

"count" => {"number":"one"},
"user" => {"gender":"male"}

}

# File lib/tr8n/translation.rb, line 46
def matches_rules?(token_values)
  return true unless has_context_rules?

  context.each do |token_name, rules|
    token_object = Tr8n::Tokens::Data.token_object(token_values, token_name)
    return false unless token_object

    rules.each do |context_key, rule_key|
      next if rule_key == 'other'

      context = language.context_by_keyword(context_key)
      return false unless context

      rule = context.find_matching_rule(token_object)
      return false if rule.nil? or rule.keyword != rule_key
    end
  end
  
  true
end