MurgaNikolay/chef-rvm

View on GitHub
libraries/rvm_simple_environment_ruby.rb

Summary

Maintainability
A
0 mins
Test Coverage
class ChefRvmCookbook
  class RvmSimpleEnvironment
    module Ruby
      def ruby?(ruby_string = nil)
        ruby_string = ruby_string(ruby_string)
        return false unless rvm?
        !rvm(ruby_string.version).error?
      end

      def ruby_install(ruby_string = nil, patch = nil)
        check_rvm!
        ruby_string = ruby_string(ruby_string)
        cmd = "install #{ruby_string.version}"
        cmd << " --patch #{patch}"
        rvm!(:install, ruby_string.version, timeout: 1000)
      end

      def ruby_set_default(ruby_string = nil)
        check_rvm!
        ruby_string = ruby_string(ruby_string)
        rvm!(ruby_string.version, '--default')
      end

      def ruby_remove(ruby_string = nil)
        check_rvm!
        shell_out!('echo yes | rvm remove', ruby_string(ruby_string).version)
      end

      def check_ruby!(ruby_string = nil)
        check_rvm!
        ruby_string = ruby_string(ruby_string)
        raise RubyDoesNotInstalled.new("Ruby #{ruby_string.version} does not installed. Please install ruby first.", ruby_string) unless ruby?(ruby_string)
        true
      end
    end
  end
end