class Pakyow::Application::Connection::Session::Cookie
Public Class Methods
new(connection, options)
click to toggle source
Calls superclass method
Pakyow::Application::Connection::Session::Base::new
# File lib/pakyow/application/connection/session/cookie.rb, line 15 def initialize(connection, options) if (cookie = connection.cookies[options.name]) && cookie.is_a?(Support::IndifferentHash) super(connection, options, Support::IndifferentHash.new(cookie[:value].to_h)) connection.cookies[options.name][:value] = self else super(connection, options, deserialize(connection, options)) connection.cookies[options.name] = Support::IndifferentHash.new( domain: options.domain, path: options.path, max_age: options.max_age, expires: options.expires, secure: options.secure, http_only: options.http_only, same_site: options.same_site, value: self ) # Update the original cookie value so we can compare for changes. # connection.update_request_cookie(options.name, self.dup) end end
Public Instance Methods
to_s()
click to toggle source
# File lib/pakyow/application/connection/session/cookie.rb, line 38 def to_s Base64.urlsafe_encode64( Pakyow.verifier.sign( Marshal.dump(to_h) ) ) end
Private Instance Methods
deserialize(connection, options)
click to toggle source
# File lib/pakyow/application/connection/session/cookie.rb, line 48 def deserialize(connection, options) if value = connection.cookies[options.name] Support::IndifferentHash.deep( Marshal.load( Pakyow.verifier.verify( Base64.urlsafe_decode64(value) ) ) ) else Support::IndifferentHash.new end rescue StandardError Support::IndifferentHash.new end