class EacRubyUtils::Envs::Executable

def command(*command_args)

def command(*command_args)
  validate!
  env.command(name, *command_args)
end

def exist?

def exist?
  exist
end

def exist_uncached

def exist_uncached
  env.command(name, *check_args).execute!
  true
rescue Errno::ENOENT
  false
end

def initialize(env, name, *check_args)

def initialize(env, name, *check_args)
  @env = env
  @name = name
  @check_args = check_args
end

def validate

def validate
  return nil if exist?
  "Program \"#{name}\" not found in environment #{env}"
end

def validate!

def validate!
  message = validate
  raise ProgramNotFoundError, message if message
end