aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-01-10 09:30:32 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2014-01-10 09:30:32 -0800
commitbd1bf2c5b8480fae0379890347d58b9fe8231e3e (patch)
treeaf64fb69154a42c146615ab8ad855da95b04b67f /activesupport/lib
parent35cc32841ed343e3013cdf67e7330647d50d668b (diff)
parent2af5303683f729bb1a4eb582a023276b8a0db402 (diff)
downloadrails-bd1bf2c5b8480fae0379890347d58b9fe8231e3e.tar.gz
rails-bd1bf2c5b8480fae0379890347d58b9fe8231e3e.tar.bz2
rails-bd1bf2c5b8480fae0379890347d58b9fe8231e3e.zip
Merge branch 'ruby-2.2'
* ruby-2.2: Check `respond_to` before delegation due to: https://github.com/ruby/ruby/commit/d781caaf313b8649948c107bba277e5ad7307314
Diffstat (limited to 'activesupport/lib')
-rw-r--r--activesupport/lib/active_support/core_ext/date_time/calculations.rb6
-rw-r--r--activesupport/lib/active_support/values/time_zone.rb1
2 files changed, 6 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/core_ext/date_time/calculations.rb b/activesupport/lib/active_support/core_ext/date_time/calculations.rb
index 8e5d723074..73ad0aa097 100644
--- a/activesupport/lib/active_support/core_ext/date_time/calculations.rb
+++ b/activesupport/lib/active_support/core_ext/date_time/calculations.rb
@@ -151,7 +151,11 @@ class DateTime
# Layers additional behavior on DateTime#<=> so that Time and
# ActiveSupport::TimeWithZone instances can be compared with a DateTime.
def <=>(other)
- super other.to_datetime
+ if other.respond_to? :to_datetime
+ super other.to_datetime
+ else
+ nil
+ end
end
end
diff --git a/activesupport/lib/active_support/values/time_zone.rb b/activesupport/lib/active_support/values/time_zone.rb
index 8ca4973162..beaac42fa1 100644
--- a/activesupport/lib/active_support/values/time_zone.rb
+++ b/activesupport/lib/active_support/values/time_zone.rb
@@ -234,6 +234,7 @@ module ActiveSupport
# Compare this time zone to the parameter. The two are compared first on
# their offsets, and then by name.
def <=>(zone)
+ return unless zone.respond_to? :utc_offset
result = (utc_offset <=> zone.utc_offset)
result = (name <=> zone.name) if result == 0
result