Class: CommandRunner::CommandInstance
- Inherits:
-
Object
- Object
- CommandRunner::CommandInstance
- Defined in:
- lib/command_runner.rb
Instance Method Summary collapse
-
#initialize(default_args, default_timeout, default_environment, allowed_sub_commands) ⇒ CommandInstance
constructor
A new instance of CommandInstance.
- #run(*args, timeout: nil, environment: {}) ⇒ Object
Constructor Details
#initialize(default_args, default_timeout, default_environment, allowed_sub_commands) ⇒ CommandInstance
Returns a new instance of CommandInstance.
151 152 153 154 155 156 157 158 159 160 |
# File 'lib/command_runner.rb', line 151 def initialize(default_args, default_timeout, default_environment, allowed_sub_commands) unless default_args.first.is_a? Array raise "First argument must be an array of command line args. Found #{default_args}" end @default_args = default_args @default_timeout = default_timeout @default_environment = default_environment @allowed_sub_commands = allowed_sub_commands end |
Instance Method Details
#run(*args, timeout: nil, environment: {}) ⇒ Object
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
# File 'lib/command_runner.rb', line 162 def run(*args, timeout: nil, environment: {}) args_list = *args if !args_list.nil? && !args_list.empty? && args_list.first.is_a?(Array) if args_list.length > 1 raise "Unsupported args list length: #{args_list.length}" else args_list = args_list.first end end # Check sub command if needed if !args_list.nil? && !args_list.empty? && !@allowed_sub_commands.empty? && !@allowed_sub_commands.include?(args_list.first) raise "Illegal sub command '#{args_list.first}'. Expected #{allowed_sub_commands} (#{allowed_sub_commands.include?(args_list.first)})" end full_args = @default_args.dup full_args[0] += args_list.map {|arg| arg.to_s } CommandRunner.run(*full_args, timeout: (timeout || @default_timeout), environment: @default_environment.merge(environment)) end |