| 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