class StrategyBag::Evaluator
Attributes
interface[RW]
Public Class Methods
new()
click to toggle source
# File lib/strategy_bag.rb, line 40 def initialize @table = {} end
Public Instance Methods
conditions_met?(a)
click to toggle source
# File lib/strategy_bag.rb, line 58 def conditions_met?(a) a.all? { |c| send(c) } end
define_func(name, p)
click to toggle source
# File lib/strategy_bag.rb, line 49 def define_func(name, p) v = instance_eval(&p) define_value(name, v) end
define_negative(name, positive_name)
click to toggle source
# File lib/strategy_bag.rb, line 54 def define_negative(name, positive_name) define_value(name, ! send(positive_name)) end
define_value(name, value)
click to toggle source
# File lib/strategy_bag.rb, line 44 def define_value(name, value) #puts "E: #{name}: #{value.inspect}" @table[name.to_sym] = value end
method_missing(m, *args, &block)
click to toggle source
Calls superclass method
# File lib/strategy_bag.rb, line 62 def method_missing(m, *args, &block) #puts "missing: #{m}" if @table.has_key?(m.to_sym) && args.empty? @table[m.to_sym] elsif interface.respond_to?(m) interface.public_send(m, *args, &block) else super end end