Sha256: c8495455045f1ad1f98f8f27f128dc77c5169aeb0d873c1d4cfe1fa4cbd82132
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
require 'open3' require 'json' require 'mkmf' module TrueAutomation class Client @pid = nil def start(options) @port = options[:port] || 9515 @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}") puts "Started TrueAutomation.IO client with pid #{@pid} listening to port #{@port}" @pid end def stop if @pid puts "Stopping TrueAutomation.IO Client with pid #{@pid}" Process.kill('TERM', @pid) @pid = nil end end def wait_until_start counter = 0 loop do break if check_connection or counter >= 10 counter += 1 sleep 2 end end private def check_connection Socket.tcp('localhost', @port, connect_timeout: 2) { true } rescue false end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
true_automation-0.3.5 | lib/true_automation/client.rb |