Sha256: ff782fc3a5e9d7385bb0cb1f053ced8968d7987355468193ffc3c64bef2969ae

Contents?: true

Size: 1.05 KB

Versions: 9

Compression:

Stored size: 1.05 KB

Contents

module Typhoeus
  class Hydra
    module Stubbing
      module SharedMethods
        def stub(method, url, options = {})
          stubs << HydraMock.new(url, method, options)
          stubs.last
        end

        def clear_stubs
          self.stubs = []
        end

        def find_stub_from_request(request)
          stubs.detect { |stub| stub.matches?(request) }
        end

        def self.extended(base)
          class << base
            attr_accessor :stubs
          end
          base.stubs = []
        end
      end

      def self.included(base)
        base.extend(SharedMethods)
        base.class_eval do
          attr_accessor :stubs
        end
      end

      def assign_to_stub(request)
        m = find_stub_from_request(request)

        # Fallback to global stubs.
        m ||= self.class.find_stub_from_request(request)

        if m
          m.add_request(request)
          @active_stubs << m
          m
        else
          nil
        end
      end
      private :assign_to_stub

      include SharedMethods
    end
  end
end

Version data entries

9 entries across 9 versions & 3 rubygems

Version Path
xenda-typhoeus-0.2.4 lib/typhoeus/hydra/stubbing.rb
typhoeus-0.2.4 lib/typhoeus/hydra/stubbing.rb
typhoeus-0.2.3 lib/typhoeus/hydra/stubbing.rb
arachni-typhoeus-0.2.0.2 lib/typhoeus/hydra/stubbing.rb
typhoeus-0.2.2 lib/typhoeus/hydra/stubbing.rb
arachni-typhoeus-0.2.0.1 lib/typhoeus/hydra/stubbing.rb
arachni-typhoeus-0.2.0 lib/typhoeus/hydra/stubbing.rb
typhoeus-0.2.1 lib/typhoeus/hydra/stubbing.rb
typhoeus-0.2.0 lib/typhoeus/hydra/stubbing.rb