Class: Textus::Hooks::Context
- Inherits:
-
Object
- Object
- Textus::Hooks::Context
- Defined in:
- lib/textus/hooks/context.rb
Overview
A narrow handle passed to user hooks in place of the raw Store. All writes route back through the RoleScope so authorization, audit logging, and schema validation always fire.
Instance Attribute Summary collapse
-
#correlation_id ⇒ Object
readonly
Returns the value of attribute correlation_id.
-
#role ⇒ Object
readonly
Returns the value of attribute role.
Class Method Summary collapse
Instance Method Summary collapse
- #audit(verb, key:) ⇒ Object
- #backend ⇒ Object
- #delete(key) ⇒ Object
- #deps(key) ⇒ Object
- #freshness(key) ⇒ Object
-
#get(key) ⇒ Object
read.
-
#initialize(scope:) ⇒ Context
constructor
A new instance of Context.
- #inspect ⇒ Object
- #list ⇒ Object
-
#publish_followup(event) ⇒ Object
fan-out.
-
#put(key) ⇒ Object
write (authorized + audited).
Constructor Details
#initialize(scope:) ⇒ Context
Returns a new instance of Context.
21 22 23 24 25 |
# File 'lib/textus/hooks/context.rb', line 21 def initialize(scope:) @scope = scope @role = scope.role @correlation_id = scope.correlation_id end |
Instance Attribute Details
#correlation_id ⇒ Object (readonly)
Returns the value of attribute correlation_id.
9 10 11 |
# File 'lib/textus/hooks/context.rb', line 9 def correlation_id @correlation_id end |
#role ⇒ Object (readonly)
Returns the value of attribute role.
9 10 11 |
# File 'lib/textus/hooks/context.rb', line 9 def role @role end |
Class Method Details
Instance Method Details
#audit(verb, key:) ⇒ Object
41 42 43 |
# File 'lib/textus/hooks/context.rb', line 41 def audit(verb, key:, **) @scope.container.audit_log.append(role: @role, verb: verb, key: key, **) end |
#backend ⇒ Object
27 28 29 |
# File 'lib/textus/hooks/context.rb', line 27 def backend @scope end |
#delete(key) ⇒ Object
39 |
# File 'lib/textus/hooks/context.rb', line 39 def delete(key, **) = @scope.delete(key, **) |
#deps(key) ⇒ Object
34 |
# File 'lib/textus/hooks/context.rb', line 34 def deps(key) = @scope.deps(key) |
#freshness(key) ⇒ Object
35 |
# File 'lib/textus/hooks/context.rb', line 35 def freshness(key) = @scope.freshness(key) |
#get(key) ⇒ Object
read
32 |
# File 'lib/textus/hooks/context.rb', line 32 def get(key) = @scope.get(key) |
#inspect ⇒ Object
50 51 52 |
# File 'lib/textus/hooks/context.rb', line 50 def inspect "#<Textus::Hooks::Context role=#{@role} correlation_id=#{@correlation_id}>" end |
#list ⇒ Object
33 |
# File 'lib/textus/hooks/context.rb', line 33 def list(**) = @scope.list(**) |
#publish_followup(event) ⇒ Object
fan-out
46 47 48 |
# File 'lib/textus/hooks/context.rb', line 46 def publish_followup(event, **) @scope.container.events.publish(event, ctx: self, **) end |
#put(key) ⇒ Object
write (authorized + audited)
38 |
# File 'lib/textus/hooks/context.rb', line 38 def put(key, **) = @scope.put(key, **) |