Class/Module Index [+]

Quicksearch

RR::DoubleDefinitions::DoubleDefinitionCreate::StrategySetupMethods

Public Instance Methods

no_subject?() click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 81
def no_subject?
  subject.__id__ === NO_SUBJECT.__id__
end

Protected Instance Methods

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 92
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_scope_strategy(scope_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 98
def add_scope_strategy(scope_strategy_class, subject=NO_SUBJECT, method_name=nil, &definition_eval_block)
  add_strategy(subject, method_name, definition_eval_block) do
    self.scope_strategy = scope_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 104
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 86
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
implementation_strategy=(implementation_strategy) click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 128
def implementation_strategy=(implementation_strategy)
  verify_not_proxy_and_dont_allow(verification_strategy, implementation_strategy)
  @implementation_strategy = implementation_strategy
end
no_strategy_error() click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 162
def no_strategy_error
  raise(
    Errors::DoubleDefinitionError,
    "This Double has no strategy"
  )
end
proxy_when_dont_allow_error() click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 155
def proxy_when_dont_allow_error
  raise(
    Errors::DoubleDefinitionError,
    "Doubles cannot be proxied when using dont_allow strategy"
  )
end
scope_strategy=(scope_strategy) click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 133
def scope_strategy=(scope_strategy)
  verify_not_proxy_and_dont_allow(verification_strategy, implementation_strategy)
  @scope_strategy = scope_strategy
end
strategy_already_defined_error() click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 142
def strategy_already_defined_error
  raise(
    Errors::DoubleDefinitionError,
    "This Double already has a #{verification_strategy.name} strategy"
  )
end
verification_strategy=(verification_strategy) click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 121
def verification_strategy=(verification_strategy)
  verify_no_verification_strategy
  verify_not_proxy_and_dont_allow(verification_strategy, implementation_strategy)
  @verification_strategy = verification_strategy
  verification_strategy
end
verify_no_verification_strategy() click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 138
def verify_no_verification_strategy
  strategy_already_defined_error if verification_strategy
end
verify_not_proxy_and_dont_allow(verification_strategy, implementation_strategy) click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 149
def verify_not_proxy_and_dont_allow(verification_strategy, implementation_strategy)
  proxy_when_dont_allow_error if
    verification_strategy.is_a?(Strategies::Verification::DontAllow) &&
    implementation_strategy.is_a?(Strategies::Implementation::Proxy)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.