Sha256: ad725f3876ba6f091da9452f2e3ac5b16348b8843283b72fbec3318e1b57a9bf

Contents?: true

Size: 528 Bytes

Versions: 1

Compression:

Stored size: 528 Bytes

Contents

# frozen_string_literal: true

require 'securerandom'

module BigSession
  # SessionId object bridges an access from users to session id
  class SessionId
    class << self
      def current
        Thread.current[::BigSession::THREAD_BIG_SESSION_ID_KEY]
      end

      def set(value = nil)
        Thread.current[::BigSession::THREAD_BIG_SESSION_ID_KEY] =
          value || new_session_id
      end

      def new_session_id
        SecureRandom.hex(16)
      end
    end

    private_class_method :new_session_id
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
big_session-0.1.0 lib/big_session/session_id.rb