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

- (SystemRubyVersion) initialize

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

- (Object) engine



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

- (Object) engine_version



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

- (Object) gem_version



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

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

- (Object) patchlevel



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

def patchlevel
  RUBY_PATCHLEVEL.to_s
end

- (Object) version



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

def version
  RUBY_VERSION.dup
end