Sha256: c30e2b6968f309a713dfcb913cadc102afd4fdbb56f7b8eeef9cea7b5fba3729

Contents?: true

Size: 860 Bytes

Versions: 6

Compression:

Stored size: 860 Bytes

Contents

module DevelopWithPassion
  module Fakes
    class Fake
      def initialize(invocation_set = {})
        @method_invocations = invocation_set
      end

      def method_missing(name,*args,&block)
        return @method_invocations.has_key?(name.to_sym) ? @method_invocations[name.to_sym].invoke(args) : handle_unexpected_method_invocation(name,args,block)
      end

      def handle_unexpected_method_invocation(name,args,block)
        method = stub(name.to_sym)
        method.ignore_arg
        return method.invoke(args)
      end

      def stub(symbol)
        return @method_invocations[symbol] || @method_invocations[symbol] = MethodStub.new
      end

      def received(symbol)
        return @method_invocations[symbol]
      end

      def never_received?(symbol)
        return !@method_invocations.has_key?(symbol)
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
developwithpassion_fakes-0.1.1 lib/developwithpassion_fakes/fake.rb
developwithpassion_fakes-0.1.0 lib/developwithpassion_fakes/fake.rb
developwithpassion_fakes-0.0.9 lib/developwithpassion_fakes/fake.rb
developwithpassion_fakes-0.0.6 lib/developwithpassion_fakes/fake.rb
developwithpassion_fakes-0.0.5 lib/developwithpassion_fakes/fake.rb
developwithpassion_fakes-0.0.4 lib/developwithpassion_fakes/fake.rb