Sha256: d84b0abeaf8572aa54837386239aeae312589158f1c65e1e9d8b87c50b055d38

Contents?: true

Size: 1.77 KB

Versions: 23

Compression:

Stored size: 1.77 KB

Contents

module RVM
  class Environment

    # Gets the full name for the current env.
    def tools_identifier
      normalize rvm(:tools, :identifier).stdout
    end

    # Gets the identifier after cd'ing to a path, no destructive.
    def tools_path_identifier(path)
      path_identifier = rvm(:tools, "path-identifier", path.to_s)
      if path_identifier.exit_status == 2
        error_message = "The rvmrc located in '#{path}' could not be loaded, likely due to trust mechanisms."
        error_message << " Please run 'rvm rvmrc {trust,untrust} \"#{path}\"' to continue, or set rvm_trust_rvmrcs to 1."
        raise ErrorLoadingRVMRC, error_message
      end
      return normalize(path_identifier.stdout)
    end

    def tools_strings(*rubies)
      rubies = rubies.flatten.join(",").split(",").uniq
      names = {}
      value = rvm(:tools, :strings, *rubies)
      if value.successful?
        parts = value.stdout.split
        rubies.each_with_index do |key, index|
          names[key] = normalize(parts[index])
        end
      end
      names
    end

    # Return the tools wrapper.
    def tools
      @tools_wrapper ||= ToolsWrapper.new(self)
    end

    # Ruby like wrapper for tools
    class ToolsWrapper

      def initialize(parent)
        @parent = parent
      end

      # Returns the current envs expanded identifier
      def identifier
        @parent.tools_identifier
      end

      # Returns the identifier for a path, taking into account
      # things like an rvmrc
      def path_identifier(path)
        @parent.tools_path_identifier(File.expand_path(path))
      end
      alias identifier_for_path path_identifier

      def strings(*rubies)
        @parent.tools_strings(*rubies)
      end

      def expand_string(ruby)
        strings(ruby)[ruby]
      end

    end

  end
end

Version data entries

23 entries across 23 versions & 2 rubygems

Version Path
rvm-1.0.22 lib/rvm/environment/tools.rb
rvm-1.0.21 lib/rvm/environment/tools.rb
rvm-1.0.20 lib/rvm/environment/tools.rb
rvm-1.0.19 lib/rvm/environment/tools.rb
rvm-1.0.18 lib/rvm/environment/tools.rb
rvm-1.0.17 lib/rvm/environment/tools.rb
rvm-1.0.15 lib/rvm/environment/tools.rb
gemrage-1.0.0 vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/tools.rb
gemrage-0.4.1 vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/tools.rb
gemrage-0.4.0 vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/tools.rb
gemrage-0.3.2 vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/tools.rb
gemrage-0.3.1 vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/tools.rb
gemrage-0.3.0 vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/tools.rb
gemrage-0.2.0 vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/tools.rb
gemrage-0.1.2 vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/tools.rb
rvm-1.0.14 lib/rvm/environment/tools.rb
rvm-1.0.13 lib/rvm/environment/tools.rb
rvm-1.0.11 lib/rvm/environment/tools.rb
rvm-1.0.10 lib/rvm/environment/tools.rb
rvm-1.0.9 lib/rvm/environment/tools.rb