module RR::DoubleDefinitions::DoubleDefinitionCreate::StrategySetupMethods
Public Instance Methods
no_subject?()
click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 50 def no_subject? subject.__id__ === NO_SUBJECT.__id__ end
Protected Instance Methods
add_double_injection_strategy(double_injection_strategy_class, subject=NO_SUBJECT, method_name=nil, &definition_eval_block)
click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 67 def add_double_injection_strategy(double_injection_strategy_class, subject=NO_SUBJECT, method_name=nil, &definition_eval_block) add_strategy(subject, method_name, definition_eval_block) do self.double_injection_strategy = double_injection_strategy_class.new(self) end end
add_implementation_strategy(implementation_strategy_class, subject=NO_SUBJECT, method_name=nil, &definition_eval_block)
click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 61 def add_implementation_strategy(implementation_strategy_class, subject=NO_SUBJECT, method_name=nil, &definition_eval_block) add_strategy(subject, method_name, definition_eval_block) do self.implementation_strategy = implementation_strategy_class.new(self) end end
add_strategy(subject, method_name, definition_eval_block) { || ... }
click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 73 def add_strategy(subject, method_name, definition_eval_block) if method_name && definition_eval_block raise ArgumentError, "Cannot pass in a method name and a block" end @subject = subject yield # TODO: Allow hash argument to simulate a Struct. if no_subject? self elsif method_name # TODO: Pass in arguments. call(method_name) else DoubleDefinitionCreateBlankSlate.new(self, &definition_eval_block) end end
add_verification_strategy(verification_strategy_class, subject=NO_SUBJECT, method_name=nil, &definition_eval_block)
click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 55 def add_verification_strategy(verification_strategy_class, subject=NO_SUBJECT, method_name=nil, &definition_eval_block) add_strategy(subject, method_name, definition_eval_block) do self.verification_strategy = verification_strategy_class.new(self) end end
double_injection_strategy=(double_injection_strategy)
click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 99 def double_injection_strategy=(double_injection_strategy) @double_injection_strategy = double_injection_strategy end
implementation_strategy=(implementation_strategy)
click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 95 def implementation_strategy=(implementation_strategy) @implementation_strategy = implementation_strategy end
verification_strategy=(verification_strategy)
click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 90 def verification_strategy=(verification_strategy) @verification_strategy = verification_strategy verification_strategy end