From fafe8ece9d406cfbb197cc424baaa15a5772fae5 Mon Sep 17 00:00:00 2001 From: Godfrey Chan Date: Wed, 5 Feb 2014 03:17:28 -0800 Subject: Added HybridSerializer to upgrade existing marshal cookies (wip: need tests) --- actionpack/lib/action_dispatch/middleware/cookies.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/actionpack/lib/action_dispatch/middleware/cookies.rb b/actionpack/lib/action_dispatch/middleware/cookies.rb index 7e8a395d93..fa94f9c9e4 100644 --- a/actionpack/lib/action_dispatch/middleware/cookies.rb +++ b/actionpack/lib/action_dispatch/middleware/cookies.rb @@ -384,6 +384,18 @@ module ActionDispatch end end + class HybridSerializer < JsonSerializer + MARSHAL_SIGNATURE = "\x04\x08".freeze + + def self.load(value) + if value.start_with?(MARSHAL_SIGNATURE) + Marshal.load(value) + else + super + end + end + end + module SerializedCookieJars protected def serializer @@ -393,6 +405,8 @@ module ActionDispatch Marshal when :json JsonSerializer + when :hybrid + HybridSerializer else serializer end -- cgit v1.2.3