diff options
author | Andrew White <andyw@pixeltrix.co.uk> | 2013-06-08 08:22:29 +0100 |
---|---|---|
committer | Andrew White <andyw@pixeltrix.co.uk> | 2013-06-08 09:45:45 +0100 |
commit | f42e0fd3f4d3e2f4b806b001b6ed88c8da8cd833 (patch) | |
tree | c46885fef4c3c9c879f8198f0307402b4a0c4628 /activesupport/lib/active_support/core_ext | |
parent | 20daaf4e2ab30762eeaf023e4870f5a10c34c534 (diff) | |
download | rails-f42e0fd3f4d3e2f4b806b001b6ed88c8da8cd833.tar.gz rails-f42e0fd3f4d3e2f4b806b001b6ed88c8da8cd833.tar.bz2 rails-f42e0fd3f4d3e2f4b806b001b6ed88c8da8cd833.zip |
Override Time.at to work with Time-like values
Time.at allows passing a single Time argument which is then converted
to an integer. The conversion code since 1.9.3r429 explicitly checks
for an instance of Time so we need to override it to allow DateTime
and ActiveSupport::TimeWithZone values.
Diffstat (limited to 'activesupport/lib/active_support/core_ext')
-rw-r--r-- | activesupport/lib/active_support/core_ext/time/calculations.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/core_ext/time/calculations.rb b/activesupport/lib/active_support/core_ext/time/calculations.rb index 9146d82bd8..7524063efb 100644 --- a/activesupport/lib/active_support/core_ext/time/calculations.rb +++ b/activesupport/lib/active_support/core_ext/time/calculations.rb @@ -45,6 +45,18 @@ class Time def current ::Time.zone ? ::Time.zone.now : ::Time.now end + + # Layers additional behavior on Time.at so that ActiveSupport::TimeWithZone and DateTime + # instances can be used when called with a single argument + def at_with_coercion(*args) + if args.size == 1 && args.first.acts_like?(:time) + at_without_coercion(args.first.to_i) + else + at_without_coercion(*args) + end + end + alias_method :at_without_coercion, :at + alias_method :at, :at_with_coercion end # Tells whether the Time object's time lies in the past |