module ActionDispatch::Cookies::SerializedCookieJars

def deserialize(name, value)

def deserialize(name, value)
  if value
    if needs_migration?(value)
      Marshal.load(value).tap do |v|
        self[name] = { value: v }
      end
    else
      serializer.load(value)
    end
  end
end

def digest

def digest
  request.cookies_digest || 'SHA1'
end

def key_generator

def key_generator
  request.key_generator
end

def needs_migration?(value)

def needs_migration?(value)
  request.cookies_serializer == :hybrid && value.start_with?(MARSHAL_SIGNATURE)
end

def serialize(value)

def serialize(value)
  serializer.dump(value)
end

def serializer

def serializer
  serializer = request.cookies_serializer || :marshal
  case serializer
  when :marshal
    Marshal
  when :json, :hybrid
    JsonSerializer
  else
    serializer
  end
end