Class: Autowow::Ruby

Inherits:
Object
  • Object
show all
Includes:
EasyLogging
Defined in:
lib/autowow/ruby.rb

Class Method Summary collapse

Class Method Details

.aliasesObject



21
22
23
24
25
26
27
# File 'lib/autowow/ruby.rb', line 21

def self.aliases
  aliases = {}
  Command.run_dry('rbenv', 'alias').stdout.each_line do |line|
    aliases[line.strip.split(' => ')[0]] = line.strip.split(' => ')[1]
  end
  aliases
end

.installed_versionsObject



17
18
19
# File 'lib/autowow/ruby.rb', line 17

def self.installed_versions
  Command.run_dry('rbenv', 'versions', '--bare', '--skip-aliases').stdout.each_line.map(&:strip)
end

.obsolete_versionsObject



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

def self.obsolete_versions
  alias_map = 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
  installed_versions - used_versions_and_aliases
end

.used_versionsObject



5
6
7
8
9
10
11
# File 'lib/autowow/ruby.rb', line 5

def self.used_versions
  rubies = []
  Fs.in_place_or_subdirs(Vcs.is_git?(Vcs.status_dry)) do
    rubies.push(version)
  end
  rubies.uniq
end

.versionObject



13
14
15
# File 'lib/autowow/ruby.rb', line 13

def self.version
  Command.run_dry('rbenv', 'local').stdout
end