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