Class: CurrentSession::Repository
- Inherits:
-
Object
- Object
- CurrentSession::Repository
- Defined in:
- lib/current_session/repository.rb
Overview
Base class for processing to get session_token from request.session
Instance Attribute Summary collapse
-
#current_time ⇒ Object
readonly
Returns the value of attribute current_time.
-
#request ⇒ Object
readonly
Returns the value of attribute request.
-
#session_token_class ⇒ Object
readonly
Returns the value of attribute session_token_class.
-
#user_class ⇒ Object
readonly
Returns the value of attribute user_class.
Instance Method Summary collapse
- #delete_session_token ⇒ Object
-
#initialize(current_time:, request:, user_class:, session_token_class:) ⇒ Repository
constructor
A new instance of Repository.
- #key ⇒ Object
- #new_session_token ⇒ Object
- #session_token ⇒ Object
- #try ⇒ Object
- #update_session_token(user) ⇒ Object
Constructor Details
#initialize(current_time:, request:, user_class:, session_token_class:) ⇒ Repository
Returns a new instance of Repository.
8 9 10 11 12 13 |
# File 'lib/current_session/repository.rb', line 8 def initialize(current_time:, request:, user_class:, session_token_class:) @current_time = current_time @request = request @user_class = user_class @session_token_class = session_token_class end |
Instance Attribute Details
#current_time ⇒ Object (readonly)
Returns the value of attribute current_time.
14 15 16 |
# File 'lib/current_session/repository.rb', line 14 def current_time @current_time end |
#request ⇒ Object (readonly)
Returns the value of attribute request.
14 15 16 |
# File 'lib/current_session/repository.rb', line 14 def request @request end |
#session_token_class ⇒ Object (readonly)
Returns the value of attribute session_token_class.
14 15 16 |
# File 'lib/current_session/repository.rb', line 14 def session_token_class @session_token_class end |
#user_class ⇒ Object (readonly)
Returns the value of attribute user_class.
14 15 16 |
# File 'lib/current_session/repository.rb', line 14 def user_class @user_class end |
Instance Method Details
#delete_session_token ⇒ Object
28 29 30 |
# File 'lib/current_session/repository.rb', line 28 def delete_session_token request.session.delete(key) end |
#key ⇒ Object
16 17 18 |
# File 'lib/current_session/repository.rb', line 16 def key @key ||= CurrentSession.key(user_class) end |
#new_session_token ⇒ Object
24 25 26 |
# File 'lib/current_session/repository.rb', line 24 def new_session_token SecureRandom.urlsafe_base64(64) end |
#session_token ⇒ Object
20 21 22 |
# File 'lib/current_session/repository.rb', line 20 def session_token @session_token ||= request.session[key] end |
#try ⇒ Object
36 37 38 39 40 |
# File 'lib/current_session/repository.rb', line 36 def try session_token.presence.try do |_| yield self end end |
#update_session_token(user) ⇒ Object
32 33 34 |
# File 'lib/current_session/repository.rb', line 32 def update_session_token(user) request.session[key] = create(user) end |