class Userstack::Client
A class which wraps calls to Userstack
API
Constants
- USER_AGENT
Attributes
access_key[R]
legacy[R]
use_ssl[R]
Public Class Methods
new(access_key, use_ssl: true, legacy: false)
click to toggle source
@param access_key
[String] Userstack
Access key @param use_ssl
[Boolean] Use ssl or not @param legacy [Boolean] Legacy response @raise [ArgumentError] when `access_key` is invalid @see userstack.com/documentation
# File lib/userstack/client.rb, line 17 def initialize(access_key, use_ssl: true, legacy: false) raise ArgumentError, 'Invalid Access key' if access_key.nil? || access_key.empty? @access_key = access_key.freeze @use_ssl = use_ssl @legacy = legacy freeze end
Public Instance Methods
parse(useragent)
click to toggle source
Parse an useragent using Userstack
@param useragent [String] an useragent @return [Hash] a Hash generated by parsing the JSON returned
from the API call, just `{}` on parsing failure
@raise [ArgumentError] when `useragent` is invalid
# File lib/userstack/client.rb, line 32 def parse(useragent) raise ArgumentError, 'Invalid useragent' if useragent.nil? || useragent.empty? response = request(useragent) parse_as_json(response.body) end
Private Instance Methods
parse_as_json(json_text)
click to toggle source
# File lib/userstack/client.rb, line 50 def parse_as_json(json_text) json_text ||= '{}' JSON.parse(json_text) rescue JSON::ParserError {} end
request(useragent)
click to toggle source
# File lib/userstack/client.rb, line 43 def request(useragent) uri = UriBuilder.execute(access_key, useragent, use_ssl, legacy) Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http| http.get(uri.to_s, 'User-Agent' => USER_AGENT) end end