class Rack::ServiceApiVersioning::BuildRedirectLocationUri

Build redirect URI from original request URI and API Version SBU.

Attributes

new_base_uri_parts[R]
request_uri[R]

Public Class Methods

call(api_version_base_uri:, request_uri:) click to toggle source
# File lib/rack/service_api_versioning/build_redirect_location_uri.rb, line 12
def self.call(api_version_base_uri:, request_uri:)
  new(api_version_base_uri, request_uri).call
end
new(api_version_base_uri, request_uri) click to toggle source
# File lib/rack/service_api_versioning/build_redirect_location_uri.rb, line 24
def initialize(api_version_base_uri, request_uri)
  @new_base_uri_parts = api_version_base_uri.to_hash
  @request_uri = request_uri
  self
end

Public Instance Methods

call() click to toggle source
# File lib/rack/service_api_versioning/build_redirect_location_uri.rb, line 16
def call
  update_path
  update_query
  uri_for_redirect
end

Private Instance Methods

combined_path_str() click to toggle source
# File lib/rack/service_api_versioning/build_redirect_location_uri.rb, line 34
def combined_path_str
  new_base_uri_parts[:path] + request_uri.path
end
path_str() click to toggle source
# File lib/rack/service_api_versioning/build_redirect_location_uri.rb, line 38
def path_str
  combined_path_str.sub('//', '/')
end
update_path() click to toggle source
# File lib/rack/service_api_versioning/build_redirect_location_uri.rb, line 42
def update_path
  new_base_uri_parts[:path] = path_str
end
update_query() click to toggle source
# File lib/rack/service_api_versioning/build_redirect_location_uri.rb, line 46
def update_query
  new_base_uri_parts[:query] = request_uri.query
end
uri_for_redirect() click to toggle source
# File lib/rack/service_api_versioning/build_redirect_location_uri.rb, line 50
def uri_for_redirect
  Addressable::URI.new(new_base_uri_parts)
end