Module RR::DoubleDefinitions::DoubleDefinitionCreate::StrategySetupMethods
In: lib/rr/double_definitions/double_definition_create.rb

Methods

Public Instance methods

[Source]

    # File lib/rr/double_definitions/double_definition_create.rb, line 50
50:         def no_subject?
51:           subject.__id__ === NO_SUBJECT.__id__
52:         end

Protected Instance methods

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

     # 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

[Source]

    # File lib/rr/double_definitions/double_definition_create.rb, line 95
95:         def implementation_strategy=(implementation_strategy)
96:           @implementation_strategy = implementation_strategy
97:         end

[Source]

    # File lib/rr/double_definitions/double_definition_create.rb, line 90
90:         def verification_strategy=(verification_strategy)
91:           @verification_strategy = verification_strategy
92:           verification_strategy
93:         end

[Validate]