Class: Excon::Middleware::Mock
- Defined in:
- lib/excon/middlewares/mock.rb
Instance Method Summary collapse
Methods inherited from Base
#error_call, #initialize, #response_call
Constructor Details
This class inherits a constructor from Excon::Middleware::Base
Instance Method Details
#request_call(datum) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/excon/middlewares/mock.rb', line 4 def request_call(datum) if datum[:mock] # convert File/Tempfile body to string before matching: if datum[:body].respond_to?(:read) if datum[:body].respond_to?(:binmode) datum[:body].binmode end if datum[:body].respond_to?(:rewind) datum[:body].rewind end datum[:body] = datum[:body].read elsif !datum[:body].nil? && !datum[:body].is_a?(String) raise Excon::Errors::InvalidStub.new("Request body should be a string or an IO object. #{datum[:body].class} provided") end if stub = Excon.stub_for(datum) datum[:response] = { :body => '', :headers => {}, :status => 200, :remote_ip => '127.0.0.1' } stub_datum = case stub.last when Proc stub.last.call(datum) else stub.last end datum[:response].merge!(stub_datum.reject {|key,value| key == :headers}) if stub_datum.has_key?(:headers) datum[:response][:headers].merge!(stub_datum[:headers]) end elsif datum[:allow_unstubbed_requests] != true # if we reach here no stubs matched = StringIO.new .puts('no stubs matched') Excon::PrettyPrinter.pp(, datum) raise(Excon::Errors::StubNotFound.new(.string)) end end @stack.request_call(datum) end |