Files
gitlab-foss/lib/gitlab/namespaced_session_store.rb
2025-05-02 03:12:12 +00:00

40 lines
661 B
Ruby

# frozen_string_literal: true
module Gitlab
class NamespacedSessionStore
include Enumerable
def initialize(key, session = Session.current)
@namespace_key = key
@session = session
end
def initiated?
!session.nil?
end
def each(&block)
return unless session
(session[@namespace_key] || {}).each(&block)
end
def [](key)
return unless session
session[@namespace_key]&.fetch(key, nil)
end
def []=(key, value)
return unless session
session[@namespace_key] ||= {}
session[@namespace_key][key] = value
end
private
attr_reader :session
end
end