Class: Rspeckled::Vcr::Matchers::UriWithoutTrailingId

Inherits:
Object
  • Object
show all
Defined in:
lib/rspeckled/plugins/extensions/vcr/matchers/uri_without_trailing_id.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(trailing_id_matcher) ⇒ UriWithoutTrailingId

Returns a new instance of UriWithoutTrailingId.



9
10
11
# File 'lib/rspeckled/plugins/extensions/vcr/matchers/uri_without_trailing_id.rb', line 9

def initialize(trailing_id_matcher)
  self.trailing_id_matcher = trailing_id_matcher
end

Instance Attribute Details

#trailing_id_matcherObject

Returns the value of attribute trailing_id_matcher.



7
8
9
# File 'lib/rspeckled/plugins/extensions/vcr/matchers/uri_without_trailing_id.rb', line 7

def trailing_id_matcher
  @trailing_id_matcher
end

Instance Method Details

#call(request, vcr_cassette_request) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/rspeckled/plugins/extensions/vcr/matchers/uri_without_trailing_id.rb', line 13

def call(request, vcr_cassette_request)
  request_uri              = request.uri
  vcr_cassette_request_uri = vcr_cassette_request.uri

  if request_uri.match?(trailing_id_matcher)
    request_uri_without_id              = request_uri.sub(trailing_id_matcher, '')
    vcr_cassette_request_uri_without_id = vcr_cassette_request_uri.sub(trailing_id_matcher, '')

    request_uri.match(trailing_id_matcher) &&
    vcr_cassette_request_uri.match(trailing_id_matcher) &&
    request_uri_without_id == vcr_cassette_request_uri_without_id
  else
    request_uri == vcr_cassette_request_uri
  end
end