class Simulacrum::Browserstack::API

The Browserstack API class wraps up functionality for talking to the Browserstack REST API.

Public Class Methods

new(username, apikey) click to toggle source
# File lib/simulacrum/browserstack/api.rb, line 10
def initialize(username, apikey)
  @username = username
  @apikey = apikey
end

Public Instance Methods

account_details() click to toggle source
# File lib/simulacrum/browserstack/api.rb, line 15
def account_details
  request = request('https://www.browserstack.com/automate/plan.json')
  account_details = OpenStruct.new
  account_details.sessions_running = request['parallel_sessions_running'].to_i
  account_details.sessions_allowed = request['parallel_sessions_max_allowed'].to_i
  account_details
end

Private Instance Methods

make_request(url) click to toggle source
# File lib/simulacrum/browserstack/api.rb, line 42
def make_request(url)
  uri = parse_url(url)
  http = prepare_http(uri)
  request = Net::HTTP::Get.new(uri.request_uri)
  request.basic_auth(@username, @apikey)
  http.request(request)
end
parse_url(url) click to toggle source
# File lib/simulacrum/browserstack/api.rb, line 30
def parse_url(url)
  URI.parse(url)
end
prepare_http(uri) click to toggle source
# File lib/simulacrum/browserstack/api.rb, line 34
def prepare_http(uri)
  http = Net::HTTP.new(uri.host, uri.port)
  http.read_timeout = 30
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER
  http
end
request(url) click to toggle source
# File lib/simulacrum/browserstack/api.rb, line 25
def request(url)
  response = make_request(url)
  JSON.parse(response.body)
end