aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport/lib')
-rw-r--r--activesupport/lib/active_support/core_ext/date/conversions.rb3
-rw-r--r--activesupport/lib/active_support/core_ext/date_time/conversions.rb12
2 files changed, 11 insertions, 4 deletions
diff --git a/activesupport/lib/active_support/core_ext/date/conversions.rb b/activesupport/lib/active_support/core_ext/date/conversions.rb
index 646dd50707..f34d860117 100644
--- a/activesupport/lib/active_support/core_ext/date/conversions.rb
+++ b/activesupport/lib/active_support/core_ext/date/conversions.rb
@@ -20,6 +20,9 @@ module ActiveSupport #:nodoc:
# Ruby 1.9 has Date#to_time which converts to localtime only.
remove_method :to_time if base.instance_methods.include?(:to_time)
+
+ # Ruby 1.9 has Date#xmlschema which converts to a string without the time component.
+ remove_method :xmlschema if base.instance_methods.include?(:xmlschema)
end
end
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 45d09f344d..52e6b6bdea 100644
--- a/activesupport/lib/active_support/core_ext/date_time/conversions.rb
+++ b/activesupport/lib/active_support/core_ext/date_time/conversions.rb
@@ -9,6 +9,10 @@ module ActiveSupport #:nodoc:
alias_method :to_s, :to_formatted_s
alias_method :default_inspect, :inspect
alias_method :inspect, :readable_inspect
+
+ # 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 base.instance_methods.include?(:to_time)
end
end
@@ -38,16 +42,16 @@ module ActiveSupport #:nodoc:
# If self has an offset other than 0, self will just be returned unaltered, since there's no clean way to map it to a Time
def to_time
self.offset == 0 ? ::Time.utc_time(year, month, day, hour, min, sec) : self
- end
+ end
# To be able to keep Times, Dates and DateTimes interchangeable on conversions
def to_datetime
self
end
-
+
def xmlschema
- strftime("%Y-%m-%dT%H:%M:%S#{offset == 0 ? 'Z' : '%Z'}")
- end
+ strftime("%Y-%m-%dT%H:%M:%S%Z")
+ end if RUBY_VERSION < '1.9'
end
end
end