mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Adding TimeWithZone #marshal_dump and #marshal_load
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8975 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
42d1172c2d
commit
10d9d0b6fe
3 changed files with 18 additions and 0 deletions
|
@ -1,5 +1,7 @@
|
|||
*SVN*
|
||||
|
||||
* Adding TimeWithZone #marshal_dump and #marshal_load [Geoff Buesing]
|
||||
|
||||
* Add OrderedHash#to_hash [josh]
|
||||
|
||||
* Adding Time#end_of_day, _quarter, _week, and _year. #9312 [Juanjo Bazan, Tarmo Tänav, BigTitus]
|
||||
|
|
|
@ -188,6 +188,14 @@ module ActiveSupport
|
|||
def freeze
|
||||
self
|
||||
end
|
||||
|
||||
def marshal_dump
|
||||
[utc, time_zone.name, time]
|
||||
end
|
||||
|
||||
def marshal_load(variables)
|
||||
initialize(variables[0], ::TimeZone[variables[1]], variables[2])
|
||||
end
|
||||
|
||||
# Ensure proxy class responds to all methods that underlying time instance responds to
|
||||
def respond_to?(sym)
|
||||
|
|
|
@ -209,6 +209,14 @@ uses_tzinfo 'TimeWithZoneTest' do
|
|||
assert_instance_of ActiveSupport::TimeWithZone, @twz.months_since(1)
|
||||
assert_equal Time.utc(2000, 1, 31, 19, 0 ,0), @twz.months_since(1).time
|
||||
end
|
||||
|
||||
def test_marshal_dump_and_load
|
||||
marshal_str = Marshal.dump(@twz)
|
||||
mtime = Marshal.load(marshal_str)
|
||||
assert_equal Time.utc(2000, 1, 1, 0), mtime.utc
|
||||
assert_equal TimeZone['Eastern Time (US & Canada)'], mtime.time_zone
|
||||
assert_equal Time.utc(1999, 12, 31, 19), mtime.time
|
||||
end
|
||||
|
||||
def test_method_missing_with_non_time_return_value
|
||||
assert_equal 1999, @twz.year
|
||||
|
|
Loading…
Reference in a new issue