aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2008-04-20 19:26:46 -0700
committerJeremy Kemper <jeremy@bitsweat.net>2008-04-20 19:56:01 -0700
commit1d18651ea36e2ba274b6c2e0fd4edd425e028589 (patch)
tree9e4ade7ded5067f923ad59b636daaf14af4ebc50
parent0b21ac5118c293b43e5370d7a3da980514f089a2 (diff)
downloadrails-1d18651ea36e2ba274b6c2e0fd4edd425e028589.tar.gz
rails-1d18651ea36e2ba274b6c2e0fd4edd425e028589.tar.bz2
rails-1d18651ea36e2ba274b6c2e0fd4edd425e028589.zip
Ruby 1.8.7 compat: detect and alias non-superclass DateTime#to_s
-rw-r--r--activesupport/lib/active_support/core_ext/date_time/conversions.rb13
1 files changed, 9 insertions, 4 deletions
diff --git a/activesupport/lib/active_support/core_ext/date_time/conversions.rb b/activesupport/lib/active_support/core_ext/date_time/conversions.rb
index aa9caf1774..c0175a5f28 100644
--- a/activesupport/lib/active_support/core_ext/date_time/conversions.rb
+++ b/activesupport/lib/active_support/core_ext/date_time/conversions.rb
@@ -3,17 +3,22 @@ module ActiveSupport #:nodoc:
module DateTime #:nodoc:
# Converting datetimes to formatted strings, dates, and times.
module Conversions
- def self.included(base) #:nodoc:
+ def self.append_features(base) #:nodoc:
base.class_eval do
- alias_method :to_default_s, :to_s if instance_methods.include?(:to_s)
- alias_method :to_s, :to_formatted_s
alias_method :default_inspect, :inspect
- alias_method :inspect, :readable_inspect
+ alias_method :to_default_s, :to_s unless (instance_methods(false) & [:to_s, 'to_s']).empty?
# Ruby 1.9 has DateTime#to_time which internally relies on Time. We define our own #to_time which allows
# DateTimes outside the range of what can be created with Time.
remove_method :to_time if instance_methods.include?(:to_time)
end
+
+ super
+
+ base.class_eval do
+ alias_method :to_s, :to_formatted_s
+ alias_method :inspect, :readable_inspect
+ end
end
# Convert to a formatted string. See Time::DATE_FORMATS for predefined formats.