class TT::ActionFactory::Locale
Public Class Methods
new()
click to toggle source
# File lib/t_t/action_factory.rb, line 13 def initialize @rules = {} @list = {} end
Public Instance Methods
compile(action)
click to toggle source
# File lib/t_t/action_factory.rb, line 31 def compile(action) action.rules.inject(base: action.base) do |result, a_option| rule = @rules.fetch(a_option.key) @list.fetch(a_option.key).each do |r_option| base = result.fetch(r_option.key, action.base) result[r_option.key] = rule.call(base, a_option.meta, r_option.meta) end result end end
knows_rule?(key)
click to toggle source
# File lib/t_t/action_factory.rb, line 27 def knows_rule?(key) @rules.has_key?(key) end
rule(key, &block)
click to toggle source
# File lib/t_t/action_factory.rb, line 18 def rule(key, &block) @rules[key] = block @list[key] = [] end
use_rule_for(key, *list)
click to toggle source
# File lib/t_t/action_factory.rb, line 23 def use_rule_for(key, *list) @list[key].concat(Option.parse(list)) end