class TrueAutomation::Client

Public Instance Methods

start(options) click to toggle source
# File lib/true_automation/client.rb, line 10
def start(options)
  @port = options[:port]
  remote = options[:remote]
  ta_debug = options[:ta_debug]

  if options[:ta_service]
    driver_path = " --driver #{options[:ta_service]}"
  elsif options[:driver]
    driver_path = " --driver #{options[:driver]}"
    driver_path += " --driver-version #{options[:driver_version]}" if options[:driver_version]
  end

  @executable = ENV['TRUEAUTOMATION_EXEC'] || 'trueautomation'

  if find_executable(@executable).nil?
    raise "`#{@executable}` not found. Can not find TrueAutomation.IO client"
  end

  trueautomation_version = `#{@executable} --version`
  puts "TrueAutomation.IO client #{trueautomation_version.strip}"

  Dir.mkdir('log') unless File.exist?('log')
  logfile = "log/trueautomation-#{Time.now.strftime('%Y%m%dT%H%M%S')}.log"

  @pid = spawn("#{@executable} --log-file #{logfile} --port #{@port}#{driver_path}#{remote}#{ta_debug}")
  puts "Started TrueAutomation.IO client with pid #{@pid} listening to port #{@port}"

  @pid
end
stop() click to toggle source
# File lib/true_automation/client.rb, line 40
def stop
  begin
    if @pid
      puts "Stopping TrueAutomation.IO Client with pid #{@pid}"
      uri = URI("http://localhost:#{@port}/shutdown")
      Net::HTTP.get(uri)

      @pid = nil
    end
  rescue
  end
end
wait_until_start() click to toggle source
# File lib/true_automation/client.rb, line 53
def wait_until_start
  counter = 0
  loop do
    break if check_connection or counter >= 10
    counter += 1
    sleep 2
  end
end

Private Instance Methods

check_connection() click to toggle source
# File lib/true_automation/client.rb, line 64
def check_connection
  Socket.tcp('localhost', @port, connect_timeout: 2) { true } rescue false
end