class Userstack::UriBuilder

A class which builds URI of Userstack api

Constants

USERSTACK_API_DOMAIN

Attributes

access_key[R]
legacy[R]
use_ssl[R]
useragent[R]

Public Class Methods

execute(access_key, useragent, use_ssl, legacy) click to toggle source

@param access_key [String] Userstack Access key @param useragent [String] useragent @param use_ssl [Boolean] Use ssl or not @param legacy [Boolean] Legacy response @return [URI::HTTP, URI::HTTPS]

# File lib/userstack/uri_builder.rb, line 18
def self.execute(access_key, useragent, use_ssl, legacy)
  new(access_key, useragent, use_ssl, legacy).send(:execute)
end
new(access_key, useragent, use_ssl, legacy) click to toggle source
# File lib/userstack/uri_builder.rb, line 26
def initialize(access_key, useragent, use_ssl, legacy)
  @access_key = access_key.freeze
  @useragent = useragent.freeze
  @use_ssl = use_ssl
  @legacy = legacy
  freeze
end

Private Instance Methods

execute() click to toggle source
# File lib/userstack/uri_builder.rb, line 34
def execute
  fqdn = URI("#{scheme}://#{USERSTACK_API_DOMAIN}/")
  fqdn.tap do |uri|
    uri.path = '/detect'
    uri.query = query
  end
end
query() click to toggle source
# File lib/userstack/uri_builder.rb, line 42
def query
  q = {
    access_key: access_key,
    ua: CGI.escape(useragent)
  }
  q[:legacy] = 1 if legacy
  q.map { |k, v| "#{k}=#{v}" }.join('&')
end
scheme() click to toggle source
# File lib/userstack/uri_builder.rb, line 51
def scheme
  use_ssl ? 'https' : 'http'
end