aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorJeremy Kemper <jeremykemper@gmail.com>2014-03-05 10:38:48 -0700
committerJeremy Kemper <jeremykemper@gmail.com>2014-03-05 10:38:48 -0700
commit9f84c7bc48dbcea3314943469358badc77b570b4 (patch)
tree238825fa3198c023afb6545693bfbedff6d917d8 /railties
parent058d3c6183ef6e0e878bea37f4fe3f8f0d6758e2 (diff)
parent2dd2fcf89673afbcf95240ecebaf34826a195164 (diff)
downloadrails-9f84c7bc48dbcea3314943469358badc77b570b4.tar.gz
rails-9f84c7bc48dbcea3314943469358badc77b570b4.tar.bz2
rails-9f84c7bc48dbcea3314943469358badc77b570b4.zip
Merge pull request #14101 from sikachu/master-fix-versioning-task
Introduce `Rails.gem_version`
Diffstat (limited to 'railties')
-rw-r--r--railties/CHANGELOG.md15
-rw-r--r--railties/lib/rails.rb4
-rw-r--r--railties/lib/rails/gem_version.rb15
-rw-r--r--railties/lib/rails/version.rb12
-rw-r--r--railties/test/version_test.rb12
5 files changed, 47 insertions, 11 deletions
diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md
index 9dce38fc93..5096f5324a 100644
--- a/railties/CHANGELOG.md
+++ b/railties/CHANGELOG.md
@@ -1,3 +1,18 @@
+* Introduce `Rails.gem_version` as a convenience method to return
+ `Gem::Version.new(Rails.version)`, suggesting a more reliable way to perform
+ version comparison.
+
+ Example:
+
+ Rails.version #=> "4.1.2"
+ Rails.gem_version #=> #<Gem::Version "4.1.2">
+
+ Rails.version > "4.1.10" #=> false
+ Rails.gem_version > Gem::Version.new("4.1.10") #=> true
+ Gem::Requirement.new("~> 4.1.2") =~ Rails.gem_version #=> true
+
+ *Prem Sichanugrist*
+
* Avoid namespacing routes inside engines.
Mountable engines are namespaced by default so the generated routes
diff --git a/railties/lib/rails.rb b/railties/lib/rails.rb
index be7570a5ba..ecd8c22dd8 100644
--- a/railties/lib/rails.rb
+++ b/railties/lib/rails.rb
@@ -80,10 +80,6 @@ module Rails
groups
end
- def version
- VERSION::STRING
- end
-
def public_path
application && Pathname.new(application.paths["public"].first)
end
diff --git a/railties/lib/rails/gem_version.rb b/railties/lib/rails/gem_version.rb
new file mode 100644
index 0000000000..c7397c4f15
--- /dev/null
+++ b/railties/lib/rails/gem_version.rb
@@ -0,0 +1,15 @@
+module Rails
+ # Returns the version of the currently loaded Rails as a <tt>Gem::Version</tt>
+ def self.gem_version
+ Gem::Version.new VERSION::STRING
+ end
+
+ module VERSION
+ MAJOR = 4
+ MINOR = 2
+ TINY = 0
+ PRE = "alpha"
+
+ STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
+ end
+end
diff --git a/railties/lib/rails/version.rb b/railties/lib/rails/version.rb
index 79313c936a..df351c4238 100644
--- a/railties/lib/rails/version.rb
+++ b/railties/lib/rails/version.rb
@@ -1,10 +1,8 @@
-module Rails
- module VERSION
- MAJOR = 4
- MINOR = 2
- TINY = 0
- PRE = "alpha"
+require_relative 'gem_version'
- STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
+module Rails
+ # Returns the version of the currently loaded Rails as a string.
+ def self.version
+ VERSION::STRING
end
end
diff --git a/railties/test/version_test.rb b/railties/test/version_test.rb
new file mode 100644
index 0000000000..f270d8f0c9
--- /dev/null
+++ b/railties/test/version_test.rb
@@ -0,0 +1,12 @@
+require 'abstract_unit'
+
+class VersionTest < ActiveSupport::TestCase
+ def test_rails_version_returns_a_string
+ assert Rails.version.is_a? String
+ end
+
+ def test_rails_gem_version_returns_a_correct_gem_version_object
+ assert Rails.gem_version.is_a? Gem::Version
+ assert_equal Rails.version, Rails.gem_version.to_s
+ end
+end