diff --git a/activerecord/lib/active_record.rb b/activerecord/lib/active_record.rb index 3a6fe1eb6e..7a7b39890a 100755 --- a/activerecord/lib/active_record.rb +++ b/activerecord/lib/active_record.rb @@ -24,6 +24,7 @@ $:.unshift(File.dirname(__FILE__)) +require 'action_controller/support/core_ext' require 'active_record/support/clean_logger' require 'active_record/support/misc' require 'active_record/support/dependencies' diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG new file mode 100644 index 0000000000..f16ab7941f --- /dev/null +++ b/activesupport/CHANGELOG @@ -0,0 +1 @@ +* Added time unit extensions to Fixnum that'll return the period in seconds, like 2.days + 4.hours. \ No newline at end of file diff --git a/activesupport/lib/core_ext/fixnum_ext.rb b/activesupport/lib/core_ext/fixnum_ext.rb new file mode 100644 index 0000000000..c7b875c021 --- /dev/null +++ b/activesupport/lib/core_ext/fixnum_ext.rb @@ -0,0 +1,36 @@ +class Fixnum + def minutes + self * 60 + end + alias :minute :minutes + + def hours + self * 60.minutes + end + alias :hour :hours + + def days + self * 24.hours + end + alias :day :days + + def weeks + self * 7.days + end + alias :week :weeks + + def fortnights + self * 2.weeks + end + alias :fortnight :fortnights + + def months + self * 30.days + end + alias :month :months + + def years + self * 365.days + end + alias :year :years +end \ No newline at end of file diff --git a/activesupport/test/core_ext/fixnum_ext_test.rb b/activesupport/test/core_ext/fixnum_ext_test.rb new file mode 100644 index 0000000000..4014ad07d0 --- /dev/null +++ b/activesupport/test/core_ext/fixnum_ext_test.rb @@ -0,0 +1,16 @@ +require 'test/unit' +require File.dirname(__FILE__) + '/../../lib/core_ext/fixnum_ext' + +class FixnumExtTest < Test::Unit::TestCase + def test_time_units + expected = { + 1.minute => 60, + 10.minutes => 600, + 1.hour + 15.minutes => 4500, + 2.days + 4.hours + 30.minutes => 189000, + 5.years + 1.month + 1.fortnight => 161481600 + } + + expected.each { |actual, expected| assert_equal expected, actual } + end +end \ No newline at end of file