Class: ActiveRecord::SessionStore::ClassMethods::HybridSerializer

Inherits:
JsonSerializer
  • Object
show all
Defined in:
lib/active_record/session_store.rb

Overview

Transparently migrates existing session values from Marshal to JSON

Constant Summary collapse

MARSHAL_SIGNATURE =
'BAh'.freeze

Class Method Summary collapse

Methods inherited from JsonSerializer

dump

Class Method Details

.load(value) ⇒ Object



78
79
80
81
82
83
84
# File 'lib/active_record/session_store.rb', line 78

def self.load(value)
  if needs_migration?(value)
    Marshal.load(::Base64.decode64(value))
  else
    super
  end
end

.needs_migration?(value) ⇒ Boolean



86
87
88
# File 'lib/active_record/session_store.rb', line 86

def self.needs_migration?(value)
  value.start_with?(MARSHAL_SIGNATURE)
end