Parent

Class/Module Index [+]

Quicksearch

RR::DoubleDefinitions::DoubleDefinitionCreate

Constants

NO_SUBJECT

Attributes

implementation_strategy[R]
scope_strategy[R]
subject[R]
verification_strategy[R]

Public Class Methods

new() click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 56
def initialize
  @verification_strategy = nil
  @implementation_strategy = Strategies::Implementation::Reimplementation.new(self)
  @scope_strategy = Strategies::Scope::Instance.new(self)
end
register_implementation_strategy_class(strategy_class, strategy_method_name) click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 19
def register_implementation_strategy_class(strategy_class, strategy_method_name)
  class_eval((          def #{strategy_method_name}(subject=NO_SUBJECT, method_name=nil, &definition_eval_block)            self.add_implementation_strategy(#{strategy_class.name}, subject, method_name, &definition_eval_block)          end), __FILE__, __LINE__ + 1)

  class_eval((          def #{strategy_method_name}!(method_name=nil, &definition_eval_block)            #{strategy_method_name}(Object.new, method_name, &definition_eval_block)          end), __FILE__, __LINE__ + 1)
end
register_scope_strategy_class(strategy_class, strategy_method_name) click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 33
def register_scope_strategy_class(strategy_class, strategy_method_name)
  class_eval((          def #{strategy_method_name}(subject=NO_SUBJECT, method_name=nil, &definition_eval_block)            self.add_scope_strategy(#{strategy_class.name}, subject, method_name, &definition_eval_block)          end), __FILE__, __LINE__ + 1)

  class_eval((          def #{strategy_method_name}!(method_name=nil, &definition_eval_block)            #{strategy_method_name}(Object.new, method_name, &definition_eval_block)          end), __FILE__, __LINE__ + 1)
end
register_verification_strategy_class(strategy_class, strategy_method_name) click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 5
def register_verification_strategy_class(strategy_class, strategy_method_name)
  class_eval((          def #{strategy_method_name}(subject=NO_SUBJECT, method_name=nil, &definition_eval_block)            self.add_verification_strategy(#{strategy_class.name}, subject, method_name, &definition_eval_block)          end), __FILE__, __LINE__ + 1)

  class_eval((          def #{strategy_method_name}!(method_name=nil, &definition_eval_block)            #{strategy_method_name}(Object.new, method_name, &definition_eval_block)          end), __FILE__, __LINE__ + 1)
end

Public Instance Methods

call(method_name, *args, &handler) click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 62
def call(method_name, *args, &handler)
  raise DoubleDefinitionCreateError if no_subject?
  definition = DoubleDefinition.new(self)
  verification_strategy || no_strategy_error
  verification_strategy.call(definition, method_name, args, handler)
  implementation_strategy.call(definition, method_name, args, handler)
  scope_strategy.call(definition, method_name, args, handler)
  definition
end
method_name() click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 76
def method_name
  @verification_strategy.method_name
end
root_subject() click to toggle source
# File lib/rr/double_definitions/double_definition_create.rb, line 72
def root_subject
  subject
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.