Module: SolidObjects::Context

Defined in:
lib/solid_objects/context.rb,
sig/generated/lib/solid_objects/context.rbs

Defined Under Namespace

Classes: Frame

Constant Summary collapse

STORAGE_KEY =

Returns:

  • (::Symbol)
:solid_objects_context

Class Method Summary collapse

Class Method Details

.authorization_contextObject

RBS:

  • () -> untyped

Returns:

  • (Object)


27
28
29
# File 'lib/solid_objects/context.rb', line 27

def authorization_context
  current&.authorization_context
end

.currentFrame?

RBS:

  • () -> Frame?

Returns:



12
13
14
# File 'lib/solid_objects/context.rb', line 12

def current
  ActiveSupport::IsolatedExecutionState[STORAGE_KEY]
end

.current_actorActor?

RBS:

  • () -> Actor?

Returns:



17
18
19
# File 'lib/solid_objects/context.rb', line 17

def current_actor
  current&.actor
end

.current_messageMessageContext?

RBS:

  • () -> MessageContext?

Returns:



22
23
24
# File 'lib/solid_objects/context.rb', line 22

def current_message
  current&.message
end

.with(actor:, message:, authorization_context: nil) { ... } ⇒ Object

RBS:

  • (actor: Actor?, message: MessageContext?, authorization_context: untyped) { () -> untyped } -> untyped

Parameters:

  • actor: (Actor, nil)
  • message: (MessageContext, nil)
  • authorization_context: (Object) (defaults to: nil)

Yields:

Yield Returns:

  • (Object)

Returns:

  • (Object)


32
33
34
35
36
37
38
# File 'lib/solid_objects/context.rb', line 32

def with(actor:, message:, authorization_context: nil)
  previous = current
  ActiveSupport::IsolatedExecutionState[STORAGE_KEY] = Frame.new(actor:, message:, authorization_context:)
  yield
ensure
  ActiveSupport::IsolatedExecutionState[STORAGE_KEY] = previous
end