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, #version

Instance Method Details

#obsolete_versionsObject



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

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



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

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



15
16
17
# File 'lib/autowow/features/rbenv.rb', line 15

def ruby_versions
  logger.info(used_versions)
end

#used_versionsObject



19
20
21
22
23
24
25
26
# File 'lib/autowow/features/rbenv.rb', line 19

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