Sha256: b25256f0aad56a718ad99149f67554cd278797b86b3c77944ea4e86efb6ae9c6

Contents?: true

Size: 957 Bytes

Versions: 8

Compression:

Stored size: 957 Bytes

Contents

module SpecifiedRuby
  extend self

  def ensure!
    return "true" if native?
    install unless installed?
    restart unless current?
    "true"
  end

  private

  def native?
    begin
      require "rvm"
      false
    rescue LoadError
      native_version == version
    end
  end

  def native_version
    "ruby-#{`ruby -e 'puts RUBY_VERSION'`.chomp}"
  end

  def version
    File.read(".ruby-version").chomp
  end

  def gemset
    File.read(".ruby-gemset").chomp
  end

  def installed?
    installed_rubies = `rvm list strings`.split("\n")
    installed_rubies.include?(version)
  end

  def install
    system("rvm install #{version}") or exit 1
  end

  def current?
    require "rvm"
    RVM.use_from_path!(".")
    RVM.current.environment_name == [version, gemset].join("@")
  rescue RVM::IncompatibleRubyError
    false
  end

  def restart
    exec "rvm-exec #{$0} #{"&& rvm-exec $SHELL" if ENV["RAILS_ENV"] == "development"}"
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
bard-0.51.1 install_files/specified_ruby.rb
bard-0.51.0 install_files/specified_ruby.rb
bard-0.50.5 install_files/specified_ruby.rb
bard-0.50.4 install_files/specified_ruby.rb
bard-0.50.3 install_files/specified_ruby.rb
bard-0.50.2 install_files/specified_ruby.rb
bard-0.50.1 install_files/specified_ruby.rb
bard-0.50.0 install_files/specified_ruby.rb