Class: Bundler::SystemRubyVersion

Inherits:
RubyVersion show all
Defined in:
lib/bundler/ruby_version.rb

Overview

A subclass of RubyVersion that implements version, engine and engine_version based upon the current information in the system. It can be used anywhere a RubyVersion object is expected, and can be compared with a RubyVersion object.

Instance Method Summary collapse

Methods inherited from RubyVersion

#==, #diff, #host, #to_s

Constructor Details

#initializeSystemRubyVersion

Returns a new instance of SystemRubyVersion.


76
77
78
79
80
# File 'lib/bundler/ruby_version.rb', line 76

def initialize(*)
  # override the default initialize, because
  # we will implement version, engine and
  # engine_version dynamically
end

Instance Method Details

#engineObject


90
91
92
93
94
95
96
97
# File 'lib/bundler/ruby_version.rb', line 90

def engine
  if defined?(RUBY_ENGINE)
    RUBY_ENGINE.dup
  else
    # not defined in ruby 1.8.7
    "ruby"
  end
end

#engine_versionObject


99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/bundler/ruby_version.rb', line 99

def engine_version
  case engine
  when "ruby"
    RUBY_VERSION.dup
  when "rbx"
    Rubinius::VERSION.dup
  when "jruby"
    JRUBY_VERSION.dup
  else
    raise BundlerError, "RUBY_ENGINE value #{RUBY_ENGINE} is not recognized"
    nil
  end
end

#gem_versionObject


86
87
88
# File 'lib/bundler/ruby_version.rb', line 86

def gem_version
  @gem_version ||= Gem::Version.new(version)
end

#patchlevelObject


113
114
115
# File 'lib/bundler/ruby_version.rb', line 113

def patchlevel
  RUBY_PATCHLEVEL.to_s
end

#versionObject


82
83
84
# File 'lib/bundler/ruby_version.rb', line 82

def version
  RUBY_VERSION.dup
end