class Rack::Joint::UrlBuilder

Attributes

host[R]
path[R]
query[R]
scheme[R]

Public Class Methods

new(scheme, request_query, host, path) click to toggle source
# File lib/rack/joint/url_builder.rb, line 8
def initialize(scheme, request_query, host, path)
  @scheme = scheme
  @query = request_query
  @host = host
  @path = path
end

Public Instance Methods

build() click to toggle source

@return [URI] URL with SSL or non-SSL

# File lib/rack/joint/url_builder.rb, line 16
def build
  if scheme == 'https'
    https_url_builder
  else
    http_url_builder
  end
end

Private Instance Methods

http_url_builder() click to toggle source

@return [URI]

# File lib/rack/joint/url_builder.rb, line 38
def http_url_builder
  # When query parameters isn't added to request URL,
  # returns empty String object with `Rack::Request::Helper#query_string`.
  if query.empty?
    URI::HTTP.build({ host: host, path: path }).to_s
  else
    URI::HTTP.build({ host: host, path: path, query: query }).to_s
  end
end
https_url_builder() click to toggle source

@return [URI]

# File lib/rack/joint/url_builder.rb, line 27
def https_url_builder
  # When query parameters isn't added to request URL,
  # returns empty String object with `Rack::Request::Helper#query_string`.
  if query.empty?
    URI::HTTPS.build({ host: host, path: path }).to_s
  else
    URI::HTTPS.build({ host: host, path: path, query: query }).to_s
  end
end