Sha256: 4824f7db065eb6f316d3bdac25cfb7fde8b4fb89bbd9c859eb750375b047cb21
Contents?: true
Size: 2 KB
Versions: 1
Compression:
Stored size: 2 KB
Contents
module RR module DoubleDefinitions module Strategies class Strategy class << self attr_reader :strategy_method_name def register(strategy_method_name, *alias_method_names) @strategy_method_name = strategy_method_name register_self_at_double_definition_create(strategy_method_name) DoubleDefinitionCreate.class_eval do alias_method_names.each do |alias_method_name| alias_method alias_method_name, strategy_method_name end end RR::Adapters::RRMethods.register_strategy_class(self, strategy_method_name) DoubleDefinition.register_strategy_class(self, strategy_method_name) RR::Adapters::RRMethods.class_eval do alias_method_names.each do |alias_method_name| alias_method alias_method_name, strategy_method_name end end end def register_self_at_double_definition_create(strategy_method_name) end end attr_reader :double_definition_create, :definition, :method_name, :args, :handler include Space::Reader def initialize(double_definition_create) @double_definition_create = double_definition_create end def call(definition, method_name, args, handler) @definition, @method_name, @args, @handler = definition, method_name, args, handler do_call end def name self.class.strategy_method_name end def verify_subject(subject) end protected def do_call raise NotImplementedError end def permissive_argument if args.empty? definition.with_any_args else definition.with(*args) end end def reimplementation definition.returns(&handler) end def subject definition.subject end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rr-0.10.11 | lib/rr/double_definitions/strategies/strategy.rb |