Module | RR::DoubleDefinitions::DoubleDefinitionCreate::StrategySetupMethods |
In: |
lib/rr/double_definitions/double_definition_create.rb
|
# File lib/rr/double_definitions/double_definition_create.rb, line 50 50: def no_subject? 51: subject.__id__ === NO_SUBJECT.__id__ 52: end
# File lib/rr/double_definitions/double_definition_create.rb, line 67 67: def add_double_injection_strategy(double_injection_strategy_class, subject=NO_SUBJECT, method_name=nil, &definition_eval_block) 68: add_strategy(subject, method_name, definition_eval_block) do 69: self.double_injection_strategy = double_injection_strategy_class.new(self) 70: end 71: end
# File lib/rr/double_definitions/double_definition_create.rb, line 61 61: def add_implementation_strategy(implementation_strategy_class, subject=NO_SUBJECT, method_name=nil, &definition_eval_block) 62: add_strategy(subject, method_name, definition_eval_block) do 63: self.implementation_strategy = implementation_strategy_class.new(self) 64: end 65: end
# File lib/rr/double_definitions/double_definition_create.rb, line 73 73: def add_strategy(subject, method_name, definition_eval_block) 74: if method_name && definition_eval_block 75: raise ArgumentError, "Cannot pass in a method name and a block" 76: end 77: @subject = subject 78: yield 79: # TODO: Allow hash argument to simulate a Struct. 80: if no_subject? 81: self 82: elsif method_name 83: # TODO: Pass in arguments. 84: call(method_name) 85: else 86: DoubleDefinitionCreateBlankSlate.new(self, &definition_eval_block) 87: end 88: end
# File lib/rr/double_definitions/double_definition_create.rb, line 55 55: def add_verification_strategy(verification_strategy_class, subject=NO_SUBJECT, method_name=nil, &definition_eval_block) 56: add_strategy(subject, method_name, definition_eval_block) do 57: self.verification_strategy = verification_strategy_class.new(self) 58: end 59: end
# File lib/rr/double_definitions/double_definition_create.rb, line 99 99: def double_injection_strategy=(double_injection_strategy) 100: @double_injection_strategy = double_injection_strategy 101: end
# File lib/rr/double_definitions/double_definition_create.rb, line 95 95: def implementation_strategy=(implementation_strategy) 96: @implementation_strategy = implementation_strategy 97: end