def set(set_attributes)
      old_attributes = compute_attributes(set_attributes.keys)
      assign_attributes(set_attributes)
      yield
    ensure
      assign_attributes(old_attributes)
    end
def set(set_attributes)
      old_attributes = compute_attributes(set_attributes.keys)
      assign_attributes(set_attributes)
      yield
    ensure
      assign_attributes(old_attributes)
    end
Expose one or more attributes within a block. Old values are returned after the block concludes.
 Example demonstrating the common use of needing to set Current attributes outside the request-cycle:

   class Chat::PublicationJob < ApplicationJob
     def perform(attributes, room_number, creator)
       Current.set(person: creator) do
         Chat::Publisher.publish(attributes: attributes, room_number: room_number)
       end
     end
   end