Sha256: 0830bf67a22b49d07f6647cf37fecb0c354cd2e7692cac1e0f02da4eb66a39bb
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
module WebMock class URL def self.normalize_uri(uri) return uri if uri.is_a?(Regexp) normalized_uri = case uri when URI then uri when String uri = 'http://' + uri unless uri.match('^https?://') URI.parse(uri) end normalized_uri.query = sort_query_params(normalized_uri.query) normalized_uri.normalize end def self.variations_of_uri_as_strings(uri_object) normalized_uri = normalize_uri(uri_object.dup) normalized_uri_string = normalized_uri.to_s variations = [normalized_uri_string] # if the port is implied in the original, add a copy with an explicit port if normalized_uri.default_port == normalized_uri.port variations << normalized_uri_string.sub( /#{Regexp.escape(normalized_uri.request_uri)}$/, ":#{normalized_uri.port}#{normalized_uri.request_uri}") end variations end private def self.sort_query_params(query) if query.nil? || query.empty? nil else query.split('&').sort.join('&') end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
webmock-0.7.1 | lib/webmock/url.rb |
webmock-0.7.0 | lib/webmock/url.rb |