Class: SimpleSauce::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_sauce/session.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = nil) ⇒ Session

Returns a new instance of Session.



11
12
13
14
15
16
17
18
# File 'lib/simple_sauce/session.rb', line 11

def initialize(options = nil)
  @options = options || Options.new
  raise unless [Array, Options].include?(@options.class)

  self.data_center = :US_WEST
  @username = ENV['SAUCE_USERNAME']
  @access_key = ENV['SAUCE_ACCESS_KEY']
end

Instance Attribute Details

#access_key=(value) ⇒ Object (writeonly)

Sets the attribute access_key

Parameters:

  • value

    the value to set the attribute access_key to.



8
9
10
# File 'lib/simple_sauce/session.rb', line 8

def access_key=(value)
  @access_key = value
end

#data_centerObject

Returns the value of attribute data_center.



9
10
11
# File 'lib/simple_sauce/session.rb', line 9

def data_center
  @data_center
end

#driverObject (readonly)

Returns the value of attribute driver.



9
10
11
# File 'lib/simple_sauce/session.rb', line 9

def driver
  @driver
end

#optionsObject (readonly)

Returns the value of attribute options.



9
10
11
# File 'lib/simple_sauce/session.rb', line 9

def options
  @options
end

#urlObject

Raises:

  • (ArgumentError)


45
46
47
48
49
50
51
52
# File 'lib/simple_sauce/session.rb', line 45

def url
  raise ArgumentError, "No user name was set; use `ENV['SAUCE_USERNAME']` or `Session#username=`" unless @username
  unless @access_key
    raise ArgumentError, "No access key was set; use `ENV['SAUCE_ACCESS_KEY']` or `Session#access_key=`"
  end

  @url ||= "https://#{@username}:#{@access_key}@#{@dc_url}"
end

#username=(value) ⇒ Object (writeonly)

Sets the attribute username

Parameters:

  • value

    the value to set the attribute username to.



8
9
10
# File 'lib/simple_sauce/session.rb', line 8

def username=(value)
  @username = value
end

Instance Method Details

#startObject



20
21
22
# File 'lib/simple_sauce/session.rb', line 20

def start
  @driver = Selenium::WebDriver.for :remote, url: url, desired_capabilities: options.capabilities
end

#stop(result) ⇒ Object



24
25
26
27
# File 'lib/simple_sauce/session.rb', line 24

def stop(result)
  SauceWhisk::Jobs.change_status(@driver.session_id, result)
  @driver.quit
end

#to_seleniumObject



54
55
56
# File 'lib/simple_sauce/session.rb', line 54

def to_selenium
  {url: url, desired_capabilities: Array(@options).map(&:as_json).inject(:merge)}
end