Permalink
Browse files

Keep track of the date each version of Sass was released.

  • Loading branch information...
1 parent 4d615d6 commit 2798d48d024b5b1452b5d0e1381d7e4fe4caad77 @nex3 nex3 committed Aug 3, 2012
Showing with 25 additions and 2 deletions.
  1. +11 −2 Rakefile
  2. +14 −0 lib/sass/version.rb
View
@@ -24,7 +24,7 @@ end
# Don't use Rake::GemPackageTast because we want prerequisites to run
# before we load the gemspec.
desc "Build all the packages."
-task :package => [:revision_file, :submodules, :permissions] do
+task :package => [:revision_file, :date_file, :submodules, :permissions] do
version = get_version
File.open(scope('VERSION'), 'w') {|f| f.puts(version)}
load scope('sass.gemspec')
@@ -63,8 +63,17 @@ task :revision_file do
end
end
+task :date_file do
+ File.open(scope('VERSION_DATE'), 'w') do |f|
+ f.puts Time.now.utc.strftime('%d %B %Y %T %Z')
+ end
+end
+
# We also need to get rid of this file after packaging.
-at_exit { File.delete(scope('REVISION')) rescue nil }
+at_exit do
+ File.delete(scope('REVISION')) rescue nil
+ File.delete(scope('VERSION_DATE')) rescue nil
+end
desc "Install Sass as a gem. Use SUDO=1 to install with sudo."
task :install => [:package] do
View
@@ -1,3 +1,5 @@
+require 'date'
+
# This is necessary for loading Sass when Haml is required in Rails 3.
# Once the split is complete, we can remove it.
require File.dirname(__FILE__) + '/../sass'
@@ -16,13 +18,15 @@ module Version
# The `:name` key has the name of the version.
# The `:string` key contains a human-readable string representation of the version.
# The `:number` key is the major, minor, and teeny keys separated by periods.
+ # The `:date` key, which is not guaranteed to be defined, is the [DateTime] at which this release was cut.
# If Sass is checked out from Git, the `:rev` key will have the revision hash.
# For example:
#
# {
# :string => "2.1.0.9616393",
# :rev => "9616393b8924ef36639c7e82aa88a51a24d16949",
# :number => "2.1.0",
+ # :date => DateTime.parse("Apr 30 13:52:01 2009 -0700"),
# :major => 2, :minor => 1, :teeny => 0
# }
#
@@ -36,6 +40,7 @@ module Version
# {
# :string => "3.0.beta.1",
# :number => "3.0.beta.1",
+ # :date => DateTime.parse("Mar 31 00:38:04 2010 -0700"),
# :major => 3, :minor => 0, :teeny => -1,
# :prerelease => "beta",
# :prerelease_number => 1
@@ -55,6 +60,10 @@ def version
:name => name
}
+ if date = version_date
+ @@version[:date] = date
+ end
+
if numbers[3].is_a?(String)
@@version[:teeny] = -1
@@version[:prerelease] = numbers[3]
@@ -101,6 +110,11 @@ def revision_number
end
return nil
end
+
+ def version_date
+ return unless File.exists?(scope('VERSION_DATE'))
+ return DateTime.parse(File.read(scope('VERSION_DATE')).strip)
+ end
end
extend Sass::Version

0 comments on commit 2798d48

Please sign in to comment.