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