class Shoulda::Matchers::ActionController::RespondWithMatcher

:nodoc:

def correct_status_code?

def correct_status_code?
  response_code == @status
end

def correct_status_code_range?

def correct_status_code_range?
  @status.is_a?(Range) &&
    @status.include?(response_code)
end

def description

def description
  "respond with #{@status}"
end

def expectation

def expectation
  "response to be a #{@status}, but was #{response_code}"
end

def failure_message_for_should

def failure_message_for_should
  "Expected #{expectation}"
end

def failure_message_for_should_not

def failure_message_for_should_not
  "Did not expect #{expectation}"
end

def initialize(status)

def initialize(status)
  @status = symbol_to_status_code(status)
end

def matches?(controller)

def matches?(controller)
  @controller = controller
  correct_status_code? || correct_status_code_range?
end

def response_code

def response_code
  @controller.response.response_code
end

def symbol_to_status_code(potential_symbol)

def symbol_to_status_code(potential_symbol)
  case potential_symbol
  when :success  then 200
  when :redirect then 300..399
  when :missing  then 404
  when :error    then 500..599
  when Symbol
    if defined?(::Rack::Utils::SYMBOL_TO_STATUS_CODE)
      ::Rack::Utils::SYMBOL_TO_STATUS_CODE[potential_symbol]
    else
      ::ActionController::Base::SYMBOL_TO_STATUS_CODE[potential_symbol]
    end
  else
    potential_symbol
  end
end