class EacRubyUtils::Envs::Executable
Attributes
check_args[R]
env[R]
name[R]
Public Class Methods
new(env, name, *check_args)
click to toggle source
# File lib/eac_ruby_utils/envs/executable.rb, line 12 def initialize(env, name, *check_args) @env = env @name = name @check_args = check_args end
Public Instance Methods
command(*command_args)
click to toggle source
# File lib/eac_ruby_utils/envs/executable.rb, line 34 def command(*command_args) validate! env.command(*executable_args, *command_args) end
executable_args()
click to toggle source
# File lib/eac_ruby_utils/envs/executable.rb, line 39 def executable_args executable_args_from_envvar || [name] end
executable_args_envvar()
click to toggle source
# File lib/eac_ruby_utils/envs/executable.rb, line 43 def executable_args_envvar "#{name}_command".variableize.upcase end
executable_args_from_envvar()
click to toggle source
# File lib/eac_ruby_utils/envs/executable.rb, line 47 def executable_args_from_envvar ENV[executable_args_envvar].if_present { |v| ::Shellwords.split(v) } end
exist?()
click to toggle source
# File lib/eac_ruby_utils/envs/executable.rb, line 18 def exist? exist end
validate()
click to toggle source
# File lib/eac_ruby_utils/envs/executable.rb, line 22 def validate return nil if exist? "Program \"#{::Shellwords.join(executable_args)}\" not found in environment #{env}" end
validate!()
click to toggle source
# File lib/eac_ruby_utils/envs/executable.rb, line 28 def validate! message = validate raise ProgramNotFoundError, message if message end
Private Instance Methods
exist_uncached()
click to toggle source
# File lib/eac_ruby_utils/envs/executable.rb, line 53 def exist_uncached env.command(*executable_args, *check_args).execute! true rescue Errno::ENOENT false end