class SessionJsonizer
Constants
- VERSION
Public Instance Methods
dump(session)
click to toggle source
# File lib/session_jsonizer.rb, line 24 def dump(session) ::Rails.logger.debug "serializer dump: #{session}" new_session = Hash[session.map do |key, value| [ key, if key == 'flash' dump_flash(value) else value end ] end] ::JSON.dump(new_session) end
load(value)
click to toggle source
# File lib/session_jsonizer.rb, line 3 def load(value) ::Rails.logger.debug "serializer load: #{value}" if value.first == '{' Hash[::JSON.load(value).map do |key, value| [ key, case when key == 'flash' load_flash(value) when value.is_a?(Hash) value.with_indifferent_access else value end ] end] else ::Marshal.load(value) end end
Private Instance Methods
dump_flash(session_value)
click to toggle source
# File lib/session_jsonizer.rb, line 49 def dump_flash(session_value) ActionDispatch::Flash::FlashHash.from_session_value(session_value).to_hash end
load_flash(data)
click to toggle source
# File lib/session_jsonizer.rb, line 45 def load_flash(data) { 'flashes' => data, 'discard' => [] } end