mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
remove Time._dump and Time._load patching for ruby 1.8
This commit is contained in:
parent
b28ed2bd4f
commit
daef51ee0a
1 changed files with 0 additions and 27 deletions
|
@ -1,30 +1,3 @@
|
||||||
# Pre-1.9 versions of Ruby have a bug with marshaling Time instances, where utc instances are
|
|
||||||
# unmarshalled in the local zone, instead of utc. We're layering behavior on the _dump and _load
|
|
||||||
# methods so that utc instances can be flagged on dump, and coerced back to utc on load.
|
|
||||||
if !Marshal.load(Marshal.dump(Time.now.utc)).utc?
|
|
||||||
class Time
|
|
||||||
class << self
|
|
||||||
alias_method :_load_without_utc_flag, :_load
|
|
||||||
def _load(marshaled_time)
|
|
||||||
time = _load_without_utc_flag(marshaled_time)
|
|
||||||
time.instance_eval do
|
|
||||||
if defined?(@marshal_with_utc_coercion)
|
|
||||||
val = remove_instance_variable("@marshal_with_utc_coercion")
|
|
||||||
end
|
|
||||||
val ? utc : self
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
alias_method :_dump_without_utc_flag, :_dump
|
|
||||||
def _dump(*args)
|
|
||||||
obj = dup
|
|
||||||
obj.instance_variable_set('@marshal_with_utc_coercion', utc?)
|
|
||||||
obj._dump_without_utc_flag(*args)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Ruby 1.9.2 adds utc_offset and zone to Time, but marshaling only
|
# Ruby 1.9.2 adds utc_offset and zone to Time, but marshaling only
|
||||||
# preserves utc_offset. Preserve zone also, even though it may not
|
# preserves utc_offset. Preserve zone also, even though it may not
|
||||||
# work in some edge cases.
|
# work in some edge cases.
|
||||||
|
|
Loading…
Reference in a new issue