From 384c72c62ddf721ae2bc85c05fa6e1fdf367e81f Mon Sep 17 00:00:00 2001 From: Terence Lee Date: Sun, 25 Mar 2012 15:25:08 -0700 Subject: [PATCH] refactor ruby version into it's own class --- lib/bundler.rb | 1 + lib/bundler/dsl.rb | 4 +--- lib/bundler/ruby_version.rb | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 lib/bundler/ruby_version.rb diff --git a/lib/bundler.rb b/lib/bundler.rb index 516f1a0c22e..ac9a2178c27 100644 --- a/lib/bundler.rb +++ b/lib/bundler.rb @@ -27,6 +27,7 @@ module Bundler autoload :MatchPlatform, 'bundler/match_platform' autoload :RemoteSpecification, 'bundler/remote_specification' autoload :Resolver, 'bundler/resolver' + autoload :RubyVersion, 'bundler/ruby_version' autoload :Runtime, 'bundler/runtime' autoload :Settings, 'bundler/settings' autoload :SharedHelpers, 'bundler/shared_helpers' diff --git a/lib/bundler/dsl.rb b/lib/bundler/dsl.rb index 240fffc6ef9..ab43d804b91 100644 --- a/lib/bundler/dsl.rb +++ b/lib/bundler/dsl.rb @@ -174,10 +174,8 @@ def ruby_version(ruby_version, options = {}) raise GemfileError, "Please define :engine_version" if options[:engine] && options[:engine_version].nil? raise GemfileError, "Please define :engine" if options[:engine_version] && options[:engine].nil? - engine = options[:engine] || "ruby" raise GemfileError, "ruby_version must match the :engine_version for MRI" if options[:engine] == "ruby" && options[:engine_version] && ruby_version != options[:engine_version] - engine_version = engine == "ruby" ? ruby_version : options[:engine_version] - @ruby_version = "ruby #{ruby_version} (#{engine} #{engine_version})" + @ruby_version = RubyVersion.new(ruby_version, options[:engine], options[:engine_version]) end def method_missing(name, *args) diff --git a/lib/bundler/ruby_version.rb b/lib/bundler/ruby_version.rb new file mode 100644 index 00000000000..ae7da3243cc --- /dev/null +++ b/lib/bundler/ruby_version.rb @@ -0,0 +1,15 @@ +module Bundler + class RubyVersion + attr_reader :version, :engine, :engine_version + + def initialize(version, engine, engine_version) + @version = version + @engine = engine || "ruby" + @engine_version = @engine == "ruby" ? version : engine_version + end + + def to_s + "ruby #{@version} (#{@engine} #{@engine_version})" + end + end +end