Class: Textus::Manifest::Entry::Base::PublishContext
- Inherits:
-
Data
- Object
- Data
- Textus::Manifest::Entry::Base::PublishContext
- Defined in:
- lib/textus/manifest/entry/base.rb
Overview
Minimal context object passed into entry ‘publish_via` hooks. Everything beyond the three primitives is derived. Data.define instances are frozen, so we recompute per-call rather than memoizing — RoleScope/Hooks::Context construction is cheap.
Instance Attribute Summary collapse
-
#call ⇒ Object
readonly
Returns the value of attribute call.
-
#container ⇒ Object
readonly
Returns the value of attribute container.
-
#reader ⇒ Object
readonly
Returns the value of attribute reader.
Instance Method Summary collapse
- #emit(event, **payload) ⇒ Object
- #events ⇒ Object
- #hook_context ⇒ Object
- #manifest ⇒ Object
-
#read_template(name) ⇒ Object
Read a named template from the store’s templates/ directory.
- #repo_root ⇒ Object
- #root ⇒ Object
Instance Attribute Details
#call ⇒ Object (readonly)
Returns the value of attribute call
64 65 66 |
# File 'lib/textus/manifest/entry/base.rb', line 64 def call @call end |
#container ⇒ Object (readonly)
Returns the value of attribute container
64 65 66 |
# File 'lib/textus/manifest/entry/base.rb', line 64 def container @container end |
#reader ⇒ Object (readonly)
Returns the value of attribute reader
64 65 66 |
# File 'lib/textus/manifest/entry/base.rb', line 64 def reader @reader end |
Instance Method Details
#emit(event, **payload) ⇒ Object
74 75 76 |
# File 'lib/textus/manifest/entry/base.rb', line 74 def emit(event, **payload) events.publish(event, ctx: hook_context, **payload) end |
#events ⇒ Object
68 |
# File 'lib/textus/manifest/entry/base.rb', line 68 def events = container.events |
#hook_context ⇒ Object
70 71 72 |
# File 'lib/textus/manifest/entry/base.rb', line 70 def hook_context Textus::Hooks::Context.new(scope: scope_for_hooks) end |
#manifest ⇒ Object
65 |
# File 'lib/textus/manifest/entry/base.rb', line 65 def manifest = container.manifest |
#read_template(name) ⇒ Object
Read a named template from the store’s templates/ directory. Raises TemplateError when the file doesn’t exist.
80 81 82 83 84 85 86 87 88 89 |
# File 'lib/textus/manifest/entry/base.rb', line 80 def read_template(name) path = File.join(container.root.to_s, "templates", name) unless File.exist?(path) raise Textus::TemplateError.new( "template '#{name}' not found", template_name: name, ) end File.read(path) end |
#repo_root ⇒ Object
67 |
# File 'lib/textus/manifest/entry/base.rb', line 67 def repo_root = File.dirname(container.root) |
#root ⇒ Object
66 |
# File 'lib/textus/manifest/entry/base.rb', line 66 def root = container.root |