TimeWithZone#- gives correct result with wrapped DateTime, and with DateTime argument
This commit is contained in:
parent
f00e86d7e9
commit
d2a1c2778e
|
@ -1,5 +1,7 @@
|
|||
*2.3.0 [Edge]*
|
||||
|
||||
* TimeWithZone#- gives correct result with wrapped DateTime, and with DateTime argument [Geoff Buesing]
|
||||
|
||||
* Updated i18n gem to version 0.1.1 #1635 [Yaroslav Markin]
|
||||
|
||||
* Add :allow_nil option to delegate. #1127 [Sergio Gil]
|
||||
|
|
|
@ -199,7 +199,7 @@ module ActiveSupport
|
|||
# If we're subtracting a Duration of variable length (i.e., years, months, days), move backwards from #time,
|
||||
# otherwise move backwards #utc, for accuracy when moving across DST boundaries
|
||||
if other.acts_like?(:time)
|
||||
utc - other
|
||||
utc.to_f - other.to_f
|
||||
elsif duration_of_variable_length?(other)
|
||||
method_missing(:-, other)
|
||||
else
|
||||
|
|
|
@ -256,6 +256,15 @@ class TimeWithZoneTest < Test::Unit::TestCase
|
|||
twz2 = ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 2), ActiveSupport::TimeZone['UTC'] )
|
||||
assert_equal 86_400.0, twz2 - twz1
|
||||
end
|
||||
|
||||
def test_minus_with_datetime
|
||||
assert_equal 86_400.0, ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 2), ActiveSupport::TimeZone['UTC'] ) - DateTime.civil(2000, 1, 1)
|
||||
end
|
||||
|
||||
def test_minus_with_wrapped_datetime
|
||||
assert_equal 86_400.0, ActiveSupport::TimeWithZone.new( DateTime.civil(2000, 1, 2), ActiveSupport::TimeZone['UTC'] ) - Time.utc(2000, 1, 1)
|
||||
assert_equal 86_400.0, ActiveSupport::TimeWithZone.new( DateTime.civil(2000, 1, 2), ActiveSupport::TimeZone['UTC'] ) - DateTime.civil(2000, 1, 1)
|
||||
end
|
||||
|
||||
def test_plus_and_minus_enforce_spring_dst_rules
|
||||
silence_warnings do # silence warnings raised by tzinfo gem
|
||||
|
|
Loading…
Reference in New Issue