提交 1d18651e 编写于 作者: J Jeremy Kemper

Ruby 1.8.7 compat: detect and alias non-superclass DateTime#to_s

上级 0b21ac51
......@@ -3,17 +3,22 @@ module CoreExtensions #: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.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册