class BigSession::SessionId

SessionId object bridges an access from users to session id

Public Class Methods

current() click to toggle source
# File lib/big_session/session_id.rb, line 16
def current
  container.last
end
new_session_id() click to toggle source

def set(value = nil)

Thread.current[::BigSession::THREAD_BIG_SESSION_ID_KEY] =
  value || new_session_id

end

# File lib/big_session/session_id.rb, line 27
def new_session_id
  SecureRandom.hex(16)
end
with_session_id(session_id) { || ... } click to toggle source
# File lib/big_session/session_id.rb, line 9
def with_session_id(session_id, &_block)
  container.push(session_id)
  yield
ensure
  container.pop
end

Private Class Methods

container() click to toggle source
# File lib/big_session/session_id.rb, line 31
def container
  Thread.current[::BigSession::THREAD_BIG_SESSION_CONTAINER_KEY] ||= []
end