Class: Nyauth::SessionSerializer
- Inherits:
-
Object
- Object
- Nyauth::SessionSerializer
- Defined in:
- lib/nyauth/session_serializer.rb
Instance Method Summary collapse
- #delete(scope) ⇒ Object
- #deserialize(key) ⇒ Object
- #fetch(scope) ⇒ Object
-
#initialize(env) ⇒ SessionSerializer
constructor
A new instance of SessionSerializer.
- #key_for(scope) ⇒ Object
- #serialize(client) ⇒ Object
- #session ⇒ Object
- #store(client, scope) ⇒ Object
- #stored?(scope) ⇒ Boolean
Constructor Details
#initialize(env) ⇒ SessionSerializer
Returns a new instance of SessionSerializer.
3 4 5 |
# File 'lib/nyauth/session_serializer.rb', line 3 def initialize(env) @env = env end |
Instance Method Details
#delete(scope) ⇒ Object
39 40 41 |
# File 'lib/nyauth/session_serializer.rb', line 39 def delete(scope) session.delete(key_for(scope)) end |
#deserialize(key) ⇒ Object
15 16 17 18 |
# File 'lib/nyauth/session_serializer.rb', line 15 def deserialize(key) klass_name, client_id = Nyauth::Encryptor.decrypt(key).split(':') klass_name.constantize.find_by(id: client_id) end |
#fetch(scope) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/nyauth/session_serializer.rb', line 26 def fetch(scope) key = session[key_for(scope)] return nil unless key client = deserialize(key) delete(scope) unless client client end |
#key_for(scope) ⇒ Object
7 8 9 |
# File 'lib/nyauth/session_serializer.rb', line 7 def key_for(scope) "nyauth.#{scope}.session" end |
#serialize(client) ⇒ Object
11 12 13 |
# File 'lib/nyauth/session_serializer.rb', line 11 def serialize(client) Nyauth::Encryptor.encrypt("#{client.class.name}:#{client.id}") end |
#session ⇒ Object
43 44 45 |
# File 'lib/nyauth/session_serializer.rb', line 43 def session @env['rack.session'] || {} end |
#store(client, scope) ⇒ Object
20 21 22 23 24 |
# File 'lib/nyauth/session_serializer.rb', line 20 def store(client, scope) return unless client session[key_for(scope)] = serialize(client) end |
#stored?(scope) ⇒ Boolean
35 36 37 |
# File 'lib/nyauth/session_serializer.rb', line 35 def stored?(scope) !!session[key_for(scope)] end |