Module: RunLoop
- Defined in:
- lib/run_loop/cli.rb,
lib/run_loop/core.rb,
lib/run_loop/version.rb
Defined Under Namespace
Modules: Core
Classes: CLI, TimeoutError
Constant Summary
collapse
- VERSION =
'0.2.0'
Class Method Summary
collapse
Class Method Details
.run(options = {}) ⇒ Object
448
449
450
451
452
453
|
# File 'lib/run_loop/core.rb', line 448
def self.run(options={})
script = validate_script(options)
options[:script] = script
Core.run_with_options(options)
end
|
.send_command(run_loop, cmd, timeout = 60) ⇒ Object
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
|
# File 'lib/run_loop/core.rb', line 455
def self.send_command(run_loop, cmd, timeout=60)
if not cmd.is_a?(String)
raise "Illegal command #{cmd} (must be a string)"
end
expected_index = Core.write_request(run_loop, cmd)
result = nil
begin
Timeout::timeout(timeout, TimeoutError) do
result = Core.read_response(run_loop, expected_index)
end
rescue TimeoutError => e
raise TimeoutError, "Time out waiting for UIAutomation run-loop for command #{cmd}. Waiting for index:#{expected_index}"
end
result
end
|
.stop(run_loop, out = Dir.pwd) ⇒ Object
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
|
# File 'lib/run_loop/core.rb', line 477
def self.stop(run_loop, out=Dir.pwd)
return if run_loop.nil?
results_dir = run_loop[:results_dir]
dest = out
Core.pids_for_run_loop(run_loop) do |pid|
Process.kill('TERM', pid.to_i)
end
FileUtils.mkdir_p(dest)
if results_dir
pngs = Dir.glob(File.join(results_dir, 'Run 1', '*.png'))
else
pngs = []
end
FileUtils.cp(pngs, dest) if pngs and pngs.length > 0
end
|
.validate_script(options) ⇒ Object
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
|
# File 'lib/run_loop/core.rb', line 500
def self.validate_script(options)
script = options[:script]
if script
if script.is_a?(Symbol)
script = Core.script_for_key(script)
unless script
raise "Unknown script for symbol: #{options[:script]}. Options: #{Core::SCRIPTS.keys.join(', ')}"
end
elsif script.is_a?(String)
unless File.exist?(script)
raise "File does not exist: #{script}"
end
else
raise "Unknown type for :script key: #{options[:script].class}"
end
else
script = Core.script_for_key(:run_loop_fast_uia)
end
script
end
|