Sha256: f45d4d2378e31e7d423a0530fd1c36be5d35d71cee3489601e4b229e4508940a

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

require_relative '../commands/rbenv'
require_relative '../commands/vcs'

require_relative 'fs'
require_relative 'vcs'

module Autowow
  module Features
    module Rbenv
      include EasyLogging
      include Commands::Rbenv
      include Executor
      include StringDecorator

      def ruby_versions
        logger.info(used_versions)
      end

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

      def ruby_aliases
        ret = {}
        quiet.run(aliases).out.clean_lines.each do |line|
          ret[line.split(' => ')[0]] = line.split(' => ')[1]
        end
        ret
      end

      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

      include ReflectionUtils::CreateModuleFunctions
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
autowow-0.4.0 lib/autowow/features/rbenv.rb