Parent

Class/Module Index [+]

Quicksearch

WebMock::RequestStub

Attributes

request_pattern[RW]

Public Class Methods

from_request_signature(signature) click to toggle source
# File lib/webmock/request_stub.rb, line 79
def self.from_request_signature(signature)
  stub = self.new(signature.method.to_sym, signature.uri.to_s)

  if signature.body.to_s != ''
    body = if signature.url_encoded?
      Addressable::URI.parse('?' + signature.body).query_values
    else
      signature.body
    end
    stub.with(:body => body)
  end

  if (signature.headers && !signature.headers.empty?)
    stub.with(:headers => signature.headers)
  end
  stub
end
new(method, uri) click to toggle source
# File lib/webmock/request_stub.rb, line 6
def initialize(method, uri)
  @request_pattern = RequestPattern.new(method, uri)
  @responses_sequences = []
  self
end

Public Instance Methods

has_responses?() click to toggle source
# File lib/webmock/request_stub.rb, line 53
def has_responses?
  !@responses_sequences.empty?
end
matches?(request_signature) click to toggle source
# File lib/webmock/request_stub.rb, line 71
def matches?(request_signature)
  self.request_pattern.matches?(request_signature)
end
response() click to toggle source
# File lib/webmock/request_stub.rb, line 42
def response
  if @responses_sequences.empty?
    WebMock::Response.new
  elsif @responses_sequences.length > 1
    @responses_sequences.shift if @responses_sequences.first.end?
    @responses_sequences.first.next_response
  else
    @responses_sequences[0].next_response
  end
end
then() click to toggle source
# File lib/webmock/request_stub.rb, line 57
def then
  self
end
times(number) click to toggle source
# File lib/webmock/request_stub.rb, line 61
def times(number)
  raise "times(N) accepts integers >= 1 only" if !number.is_a?(Fixnum) || number < 1
  if @responses_sequences.empty?
    raise "Invalid WebMock stub declaration." +
      " times(N) can be declared only after response declaration."
  end
  @responses_sequences.last.times_to_repeat += number-1
  self
end
to_rack(app, options={}) click to toggle source
# File lib/webmock/request_stub.rb, line 26
def to_rack(app, options={})
  @responses_sequences << ResponsesSequence.new([RackResponse.new(app)])
end
to_raise(*exceptions) click to toggle source
# File lib/webmock/request_stub.rb, line 30
def to_raise(*exceptions)
  @responses_sequences << ResponsesSequence.new([*exceptions].flatten.map {|e|
    ResponseFactory.response_for(:exception => e)
  })
  self
end
to_return(*response_hashes, &block) click to toggle source
# File lib/webmock/request_stub.rb, line 17
def to_return(*response_hashes, &block)
  if block
    @responses_sequences << ResponsesSequence.new([ResponseFactory.response_for(block)])
  else
    @responses_sequences << ResponsesSequence.new([*response_hashes].flatten.map {|r| ResponseFactory.response_for(r)})
  end
  self
end
to_s() click to toggle source
# File lib/webmock/request_stub.rb, line 75
def to_s
  self.request_pattern.to_s
end
to_timeout() click to toggle source
# File lib/webmock/request_stub.rb, line 37
def to_timeout
  @responses_sequences << ResponsesSequence.new([ResponseFactory.response_for(:should_timeout => true)])
  self
end
with(params = {}, &block) click to toggle source
# File lib/webmock/request_stub.rb, line 12
def with(params = {}, &block)
  @request_pattern.with(params, &block)
  self
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.