class Komenda::ProcessBuilder
Attributes
command[R]
cwd[R]
env[R]
events[R]
fail_on_fail[R]
use_bundler_env[R]
Public Class Methods
new(command, options = {})
click to toggle source
@param [String, String command @param [Hash] options
# File lib/komenda/process_builder.rb, line 13 def initialize(command, options = {}) defaults = { env: {}, use_bundler_env: false, cwd: nil, fail_on_fail: false, events: {} } options = defaults.merge(options) self.command = command self.env = options[:env] self.use_bundler_env = options[:use_bundler_env] self.cwd = options[:cwd] self.fail_on_fail = options[:fail_on_fail] self.events = options[:events] end
Public Instance Methods
command=(command)
click to toggle source
@param [String, Array<String>] command
# File lib/komenda/process_builder.rb, line 37 def command=(command) @command = if command.is_a?(Array) command.map { |v| String(v) } else String(command) end end
create()
click to toggle source
@return [Komenda::Process]
# File lib/komenda/process_builder.rb, line 32 def create Komenda::Process.new(self) end
cwd=(cwd = nil)
click to toggle source
@param [String] cwd
# File lib/komenda/process_builder.rb, line 56 def cwd=(cwd = nil) @cwd = cwd.nil? ? nil : String(cwd) end
env=(env)
click to toggle source
@param [Hash] env
# File lib/komenda/process_builder.rb, line 46 def env=(env) @env = Hash[env.to_hash.map { |k, v| [String(k), String(v)] }] end
env_final()
click to toggle source
@return [Hash]
# File lib/komenda/process_builder.rb, line 71 def env_final env_original.merge(env) end
events=(events)
click to toggle source
@param [Hash<Symbol, Proc>]
# File lib/komenda/process_builder.rb, line 66 def events=(events) @events = Hash[events.to_hash.map { |k, v| [k.to_sym, v.to_proc] }] end
fail_on_fail=(fail_on_fail)
click to toggle source
@param [Boolean] fail_on_fail
# File lib/komenda/process_builder.rb, line 61 def fail_on_fail=(fail_on_fail) @fail_on_fail = fail_on_fail ? true : false end
use_bundler_env=(use_bundler_env)
click to toggle source
@param [Boolean] use_bundler_env
# File lib/komenda/process_builder.rb, line 51 def use_bundler_env=(use_bundler_env) @use_bundler_env = use_bundler_env ? true : false end
Private Instance Methods
bundler_clean_env()
click to toggle source
@return [Hash]
# File lib/komenda/process_builder.rb, line 87 def bundler_clean_env env = if Bundler.methods(false).include?(:clean_env) Bundler.clean_env else # For Bundler < 1.12.0 Bundler.with_clean_env { ENV.to_hash } end # Work around limitations of `Bundler.clean_env` env.delete('BUNDLER_VERSION') env.delete('RUBYOPT') if env.key?('RUBYOPT') && env['RUBYOPT'] == '' env.delete('RUBYLIB') if env.key?('RUBYLIB') && env['RUBYLIB'] == '' env end
env_original()
click to toggle source
@return [Hash]
# File lib/komenda/process_builder.rb, line 78 def env_original if !use_bundler_env && Object.const_defined?('Bundler') bundler_clean_env else ENV.to_hash end end