Sha256: f893f9c64b4a777ce228e64cde4221951de79be428c5230d7b39618c2012615e

Contents?: true

Size: 984 Bytes

Versions: 13

Compression:

Stored size: 984 Bytes

Contents

module RR
  module DoubleDefinitions
    module Strategies
      class Strategy
        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 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

13 entries across 13 versions & 1 rubygems

Version Path
rr-1.2.1 lib/rr/double_definitions/strategies/strategy.rb
rr-1.2.0 lib/rr/double_definitions/strategies/strategy.rb
rr-1.1.2 lib/rr/double_definitions/strategies/strategy.rb
rr-1.1.2.rc1 lib/rr/double_definitions/strategies/strategy.rb
rr-1.1.1 lib/rr/double_definitions/strategies/strategy.rb
rr-1.1.1.rc1 lib/rr/double_definitions/strategies/strategy.rb
rr-1.1.0 lib/rr/double_definitions/strategies/strategy.rb
rr-1.1.0.rc3 lib/rr/double_definitions/strategies/strategy.rb
rr-1.1.0.rc2 lib/rr/double_definitions/strategies/strategy.rb
rr-1.1.0.rc1 lib/rr/double_definitions/strategies/strategy.rb
rr-1.0.5 lib/rr/double_definitions/strategies/strategy.rb
rr-1.0.5.rc2 lib/rr/double_definitions/strategies/strategy.rb
rr-1.0.5.rc1 lib/rr/double_definitions/strategies/strategy.rb