class Mocha::ParameterMatchers::EquivalentUri

Parameter matcher which matches URIs with equivalent query strings.

Public Class Methods

new(uri) click to toggle source

@private

# File lib/mocha/parameter_matchers/equivalent_uri.rb, line 33
def initialize(uri)
  @uri = URI.parse(uri)
end

Public Instance Methods

matches?(available_parameters) click to toggle source

@private

# File lib/mocha/parameter_matchers/equivalent_uri.rb, line 38
def matches?(available_parameters)
  actual = explode(URI.parse(available_parameters.shift))
  expected = explode(@uri)
  actual == expected
end
mocha_inspect() click to toggle source

@private

# File lib/mocha/parameter_matchers/equivalent_uri.rb, line 45
def mocha_inspect
  "equivalent_uri(#{@uri.mocha_inspect})"
end

Private Instance Methods

explode(uri) click to toggle source

@private

# File lib/mocha/parameter_matchers/equivalent_uri.rb, line 52
def explode(uri)
  query_hash = CGI.parse(uri.query || '')
  URI::Generic::COMPONENT.inject({}) { |h, k| h.merge(k => uri.__send__(k)) }.merge(:query => query_hash)
end