diff options
author | Sam Stephenson <sam@37signals.com> | 2007-01-15 22:02:11 +0000 |
---|---|---|
committer | Sam Stephenson <sam@37signals.com> | 2007-01-15 22:02:11 +0000 |
commit | 312e6edf914a8b561feacac2486d97e7904472e5 (patch) | |
tree | aa7f808afc3726c3170b269ef60c18f1e1e0c77f /activesupport | |
parent | 521ca37c3e6c453f48ab1dd9225bde6ea3a0c9d6 (diff) | |
download | rails-312e6edf914a8b561feacac2486d97e7904472e5.tar.gz rails-312e6edf914a8b561feacac2486d97e7904472e5.tar.bz2 rails-312e6edf914a8b561feacac2486d97e7904472e5.zip |
Fix that Dates couldn't be subtracted from Dates after [5940].
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5954 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/CHANGELOG | 2 | ||||
-rw-r--r-- | activesupport/lib/active_support/core_ext/date/calculations.rb | 6 | ||||
-rw-r--r-- | activesupport/test/core_ext/duration_test.rb | 6 |
3 files changed, 12 insertions, 2 deletions
diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG index f1e40389e9..7d42bf9e5c 100644 --- a/activesupport/CHANGELOG +++ b/activesupport/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Fix that Dates couldn't be subtracted from Dates after [5940]. [Sam Stephenson] + * Add Object#acts_like? and Time#acts_like_time? and Date#acts_like_date? to facilitate duck-typing. [Jamis Buck] * Make 1.months and friends accurate by introducing a Duration class. #6835 [eventualbuddha] diff --git a/activesupport/lib/active_support/core_ext/date/calculations.rb b/activesupport/lib/active_support/core_ext/date/calculations.rb index f81cd9187e..b104e5271a 100644 --- a/activesupport/lib/active_support/core_ext/date/calculations.rb +++ b/activesupport/lib/active_support/core_ext/date/calculations.rb @@ -23,7 +23,11 @@ module ActiveSupport #:nodoc: end def minus_with_duration(other) #:nodoc: - self.plus_with_duration(-other) + if ActiveSupport::Duration === other + plus_with_duration(-other) + else + minus_without_duration(other) + end end # Provides precise Date calculations for years, months, and days. The +options+ parameter takes a hash with diff --git a/activesupport/test/core_ext/duration_test.rb b/activesupport/test/core_ext/duration_test.rb index 78fc999052..22950d8710 100644 --- a/activesupport/test/core_ext/duration_test.rb +++ b/activesupport/test/core_ext/duration_test.rb @@ -10,4 +10,8 @@ class DurationTest < Test::Unit::TestCase assert_equal '7 days', 1.week.inspect assert_equal '14 days', 1.fortnight.inspect end -end
\ No newline at end of file + + def test_minus_with_duration_does_not_break_subtraction_of_date_from_date + assert_nothing_raised { Date.today - Date.today } + end +end |