Module: Autowow::Features::Rbenv

Includes:
Commands::Rbenv, Executor, EasyLogging, ReflectionUtils::CreateModuleFunctions, StringDecorator
Defined in:
lib/autowow/features/rbenv.rb

Instance Method Summary collapse

Methods included from Executor

#pretty, #pretty_with_output, #quiet, #tty_params

Methods included from Commands::Rbenv

#aliases, #installed_versions, #rbenv, #version

Instance Method Details

#exists?Boolean

Returns:

  • (Boolean)


15
16
17
18
19
20
21
# File 'lib/autowow/features/rbenv.rb', line 15

def exists?
  begin
    quiet.run!(rbenv).success?
  rescue SystemCallError
    false
  end
end

#obsolete_versionsObject



46
47
48
49
50
51
52
53
# File 'lib/autowow/features/rbenv.rb', line 46

def obsolete_versions
  alias_map = ruby_aliases
  used_versions_and_aliases = used_versions
  used_versions.each do |v|
    used_versions_and_aliases.push(alias_map[v]) if alias_map.has_key?(v)
  end
  quiet.run(installed_versions).out.clean_lines - used_versions_and_aliases
end

#ruby_aliasesObject



36
37
38
39
40
41
42
43
44
# File 'lib/autowow/features/rbenv.rb', line 36

def ruby_aliases
  ret = {}
  result = quiet.run!(aliases)
  return ret unless result.success?
  result.out.clean_lines.each do |line|
    ret[line.split(" => ")[0]] = line.split(" => ")[1]
  end
  ret
end

#ruby_versionsObject



23
24
25
# File 'lib/autowow/features/rbenv.rb', line 23

def ruby_versions
  logger.info(used_versions)
end

#used_versionsObject



27
28
29
30
31
32
33
34
# File 'lib/autowow/features/rbenv.rb', line 27

def used_versions
  rubies = []
  Fs.in_place_or_subdirs(Vcs.is_git?) do
    result = quiet.run!(version)
    rubies.concat(result.out.clean_lines) if result.success?
  end
  rubies.uniq
end