module StrategyBag::ClassDSL
Attributes
conditions[RW]
default_strategy[RW]
derived_attributes[RW]
param_names[RW]
strategies[RW]
Public Instance Methods
condition(positive_name, negative_name, &p)
click to toggle source
# File lib/strategy_bag.rb, line 81 def condition(positive_name, negative_name, &p) #puts "DSL: condition: #{positive_name}" self.conditions ||= [] self.conditions << [positive_name, negative_name, p] end
default(&block)
click to toggle source
# File lib/strategy_bag.rb, line 94 def default(&block) self.default_strategy = block end
derive(name, &block)
click to toggle source
# File lib/strategy_bag.rb, line 98 def derive(name, &block) self.derived_attributes ||= [] self.derived_attributes << [name, block] end
params(*param_names)
click to toggle source
# File lib/strategy_bag.rb, line 77 def params(*param_names) self.param_names = param_names end
strategy(title = nil, &block)
click to toggle source
# File lib/strategy_bag.rb, line 87 def strategy(title = nil, &block) self.strategies ||= [] strategy = Strategy.new strategy.instance_eval(&block) self.strategies << strategy end