module Typhoeus::Hydra::Stubbing::SharedMethods

def self.extended(base)

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

def clear_stubs

def clear_stubs
  self.stubs = []
end

def find_stub_from_request(request)

def find_stub_from_request(request)
  stub_finders.each do |finder|
    if response = finder.call(request)
      mock = HydraMock.new(/.*/, :any)
      mock.and_return(response)
      return mock
    end
  end
  stubs.detect { |stub| stub.matches?(request) }
end

def register_stub_finder(&block)

def register_stub_finder(&block)
  stub_finders << block
end

def stub(method, url, options = {})

def stub(method, url, options = {})
  stubs << HydraMock.new(url, method, options)
  stubs.last
end

def stub_finders

def stub_finders
  @stub_finders ||= []
end