Sha256: 7c270ae5500934911bd4ea959be8945c07d8ae473059ee7b50659e1d299b64c8

Contents?: true

Size: 1.38 KB

Versions: 38

Compression:

Stored size: 1.38 KB

Contents

require 'rest_client'
require 'json'

module Sauce
  # The module that brokers most communication with Sauce Labs' REST API
  class Client
    class BadAccessError < StandardError; end #:nodoc
    class MisconfiguredError < StandardError; end #:nodoc

    attr_accessor :username, :access_key, :client
    attr_accessor :protocol, :host, :port, :api_path, :api_version, :ip, :api_url
    attr_accessor :tunnels, :jobs

    def initialize(options)
      @username   = options[:username]
      @access_key = options[:access_key]
      @ip         = options[:ip]

      @protocol   = options[:protocol] || "http"
      @host       = options[:host] || "saucelabs.com"
      @port       = options[:port] || 80
      @api_path   = options[:api_path] || "rest"
      @api_version= options[:api_version] || 1

      raise MisconfiguredError if @username.nil? or @access_key.nil?
      @api_url = "#{@protocol}://#{@username}:#{@access_key}@#{@host}:#{@port}/#{@api_path}/v#{@api_version}/#{@username}/"
      @client = RestClient::Resource.new @api_url

      @tunnels = Sauce::Tunnel
      @tunnels.client = @client
      @tunnels.account = {
        :username => @username,
        :access_key => @access_key,
        :ip => @ip}

      @jobs = Sauce::Job
      @jobs.client = @client
      @jobs.account = {
        :username => @username,
        :access_key => @access_key,
        :ip => @ip
      }
    end
  end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
sauce-0.16.2 lib/sauce/client.rb
sauce-0.16.1 lib/sauce/client.rb
sauce-0.15.1 lib/sauce/client.rb
sauce-0.15.0 lib/sauce/client.rb
sauce-0.15.0.alpha.2 lib/sauce/client.rb
sauce-0.15.0.alpha.1 lib/sauce/client.rb
sauce-0.14.2 lib/sauce/client.rb
sauce-0.14.1 lib/sauce/client.rb
sauce-0.14.0 lib/sauce/client.rb
sauce-0.13.2 lib/sauce/client.rb
sauce-0.13.1 lib/sauce/client.rb
sauce-0.13.0 lib/sauce/client.rb
sauce-0.12.10 lib/sauce/client.rb
sauce-0.12.9 lib/sauce/client.rb
sauce-0.12.8 lib/sauce/client.rb
sauce-0.12.7 lib/sauce/client.rb
sauce-0.12.6 lib/sauce/client.rb
sauce-0.12.5 lib/sauce/client.rb
sauce-0.12.4 lib/sauce/client.rb
sauce-0.12.3 lib/sauce/client.rb