module PrivatePlease::Utils::RubyUtils

Public Instance Methods

gem_env() click to toggle source
# File lib/private_please/utils/ruby_utils.rb, line 8
def gem_env
  @_gem_env ||= begin
    `gem env`
  end
end
gems_paths() click to toggle source
  • GEM PATHS:

    • /Users/alain/.rvm/gems/ruby-2.3.0

    • /Users/alain/.rvm/gems/ruby-2.3.0

# File lib/private_please/utils/ruby_utils.rb, line 30
def gems_paths
  @_gems_paths ||= YAML.load(gem_env)['RubyGems Environment'].detect do |hash|
    hash['GEM PATHS']
  end['GEM PATHS']
end
ruby_executable_path() click to toggle source

Ex: “/Users/ara/.rbenv/versions/jruby-1.7.3/bin/jruby”

# File lib/private_please/utils/ruby_utils.rb, line 37
def ruby_executable_path
  @_ruby_executable_path ||= gem_env.match(/RUBY EXECUTABLE:\s*(.*)/)[1]
end
std_lib_home() click to toggle source

Ex: “/Users/ara/.rbenv/versions/jruby-1.7.3/lib/ruby/1.9”

# File lib/private_please/utils/ruby_utils.rb, line 15
def std_lib_home
  @_std_lib_home ||= begin
    basedir = ruby_executable_path.gsub(/bin\/[j]?ruby/, 'lib/ruby')
    # => "/Users/ara/.rbenv/versions/jruby-1.7.3/lib/ruby"
    # jruby has 2+ directories of std. libs under the basedir : 1.8 and 1.9
    $LOAD_PATH.detect do |path| # We choose the one that is also in the load path.
      path =~ /#{basedir}\/[12][^\/]+$/ #
    end #                    ^^^^^^^^^^       # => "/Users/ara/.rbenv/versions/jruby-1.7.3/lib/ruby/1.9"
  end #                                                     ^^^ == the mode
end