Sha256: b0cee2b9b5385c1472238086363bb144630dd5073a951ed83533997acffe0364
Contents?: true
Size: 927 Bytes
Versions: 1
Compression:
Stored size: 927 Bytes
Contents
require "open3" module SimControl class PythonEnvironment < BaseEnvironment def initialize(script, args = {}) @script = script @interpreter = args.delete(:interpreter) @virtualenv = args.delete(:virtualenv) raise "passing a virtualenv requires an interpreter" if @virtualenv and not @interpreter end def script @script end def args(scenario) scenario.map { |k, v| "--#{ k } #{ v }" }.join " " end def execute(scenario) stdin, stout, stderr, thread = Open3.popen3 command(scenario), chdir: basedir thread.join end def basedir File.dirname @script end def command(scenario) [interpreter, script, args(scenario)].reject(&:nil?).reject(&:empty?).join " " end def interpreter if @virtualenv File.join(@virtualenv, "bin", @interpreter) else @interpreter end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
SimControl-0.1.2 | lib/SimControl/environments/python.rb |