28 lines
		
	
	
		
			444 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			444 B
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
module Gitlab
 | 
						|
  class Session
 | 
						|
    STORE_KEY = :session_storage
 | 
						|
 | 
						|
    class << self
 | 
						|
      def with_session(session)
 | 
						|
        old = self.current
 | 
						|
        self.current = session
 | 
						|
        yield
 | 
						|
      ensure
 | 
						|
        self.current = old
 | 
						|
      end
 | 
						|
 | 
						|
      def current
 | 
						|
        Thread.current[STORE_KEY]
 | 
						|
      end
 | 
						|
 | 
						|
      protected
 | 
						|
 | 
						|
      def current=(value)
 | 
						|
        Thread.current[STORE_KEY] = value
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |