Class: WebMock::URIPattern

Inherits:
Object
  • Object
show all
Includes:
RSpecMatcherDetector
Defined in:
lib/webmock/request_pattern.rb

Instance Method Summary collapse

Methods included from RSpecMatcherDetector

#rSpecHashExcludingMatcher?, #rSpecHashIncludingMatcher?

Constructor Details

#initialize(pattern) ⇒ URIPattern

Returns a new instance of URIPattern.



116
117
118
119
120
121
122
123
124
125
126
# File 'lib/webmock/request_pattern.rb', line 116

def initialize(pattern)
  @pattern = if pattern.is_a?(Addressable::URI) \
                || pattern.is_a?(Addressable::Template)
    pattern
  elsif pattern.respond_to?(:call)
    pattern
  else
    WebMock::Util::URI.normalize_uri(pattern)
  end
  @query_params = nil
end

Instance Method Details

#add_query_params(query_params) ⇒ Object



128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/webmock/request_pattern.rb', line 128

def add_query_params(query_params)
  @query_params = if query_params.is_a?(Hash)
    query_params
  elsif query_params.is_a?(WebMock::Matchers::HashIncludingMatcher) \
          || query_params.is_a?(WebMock::Matchers::HashExcludingMatcher)
    query_params
  elsif rSpecHashIncludingMatcher?(query_params)
    WebMock::Matchers::HashIncludingMatcher.from_rspec_matcher(query_params)
  elsif rSpecHashExcludingMatcher?(query_params)
    WebMock::Matchers::HashExcludingMatcher.from_rspec_matcher(query_params)
  else
    WebMock::Util::QueryMapper.query_to_values(query_params, notation: Config.instance.query_values_notation)
  end
end

#matches?(uri) ⇒ Boolean

Returns:

  • (Boolean)


143
144
145
# File 'lib/webmock/request_pattern.rb', line 143

def matches?(uri)
  pattern_matches?(uri) && query_params_matches?(uri)
end

#to_sObject



147
148
149
150
151
# File 'lib/webmock/request_pattern.rb', line 147

def to_s
  str = pattern_inspect
  str += " with query params #{@query_params.inspect}" if @query_params
  str
end