Sha256: c61a1db4c1502d5ef6332c4465e5df3bb1f931e7fcfc76e57abaf34147c24e73

Contents?: true

Size: 1.98 KB

Versions: 1

Compression:

Stored size: 1.98 KB

Contents

module BinInstall
  module Ruby
    module Rvm
      INSTALL = '\curl -sSL https://get.rvm.io | bash'.freeze

      def self.install
        puts 'Installing RVM...'.white
        system(INSTALL)
        require_loaded!
        install_ruby
      end

      def self.install!
        puts 'Installing RVM...'.white
        BinInstall.system!(INSTALL)
        BinInstall.system!('source ~/.rvm/scripts/rvm')
        require_loaded!
        install_ruby!
      end

      def self.install_ruby(version = Ruby.required_ruby_version)
        puts "Installing Ruby #{version}...".white

        if version
          if Ruby.ruby_version_installed?(version)
            puts "Ruby #{version} is already installed. Skipping Ruby #{version} install.".blue
          else
            system("rvm install #{version}")
            system("zsh --login -c rvm use #{version}")
          end
        else
          puts 'Unknown Ruby version. Create .ruby-version file.'
        end
      end

      def self.install_ruby!(version = Ruby.required_ruby_version)
        puts "Installing Ruby #{version}...".white

        if version
          if Ruby.ruby_version_installed?(version)
            puts "Ruby #{version} is already installed. Skipping Ruby #{version} install.".blue
          else
            BinInstall.system!("rvm install #{version}")
            BinInstall.system!("zsh --login -c rvm use #{version}")
          end
        else
          abort('Unknown Ruby version. Create .ruby-version file.'.red)
        end
      end

      def self.require_loaded!
        abort_install! unless installed?
      end

      def self.abort_install!
        puts 'Warning RVM is not loaded.'.yellow
        puts 'Try closing this window and restarting your shell session.'.yellow
        puts "\n"
        puts 'Rerun the installer with:'
        puts '$ bin/install'.cyan
        puts "\n"
        abort('Aborting install.'.red)
      end

      def self.installed?
        Shell.executable_exists?('rvm')
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bin_install-0.0.29 lib/bin_install/ruby/rvm.rb