Class: Textus::Protocol::Produce::Render
- Inherits:
-
Object
- Object
- Textus::Protocol::Produce::Render
- Defined in:
- lib/textus/protocol/produce/render.rb,
lib/textus/protocol/produce/render/context.rb
Defined Under Namespace
Classes: Context
Instance Method Summary collapse
- #bytes_for(target:, data:, boot:) ⇒ Object
-
#initialize(template_loader:, manifest: nil, source_publish_path: nil, entry_key: nil, edge_store: nil) ⇒ Render
constructor
A new instance of Render.
Constructor Details
#initialize(template_loader:, manifest: nil, source_publish_path: nil, entry_key: nil, edge_store: nil) ⇒ Render
Returns a new instance of Render.
5 6 7 8 9 10 11 |
# File 'lib/textus/protocol/produce/render.rb', line 5 def initialize(template_loader:, manifest: nil, source_publish_path: nil, entry_key: nil, edge_store: nil) @template_loader = template_loader @manifest = manifest @source_publish_path = source_publish_path @entry_key = entry_key @edge_store = edge_store end |
Instance Method Details
#bytes_for(target:, data:, boot:) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/textus/protocol/produce/render.rb', line 13 def bytes_for(target:, data:, boot:) raise ArgumentError.new("Produce::Render called for a verbatim target #{target.to.inspect}") unless target.renders? locals = target.inject_boot ? data.merge("boot" => boot) : data resolver = @manifest ? Textus::Protocol::Links::Resolver.new(manifest: @manifest) : nil ctx = Render::Context.for( locals: locals, resolver: resolver, from_path: target.to, from_key: @entry_key, edge_store: @edge_store, ) raw = ERB.new(@template_loader.call(target.template), trim_mode: "-").result(ctx.to_erb_binding) rewrite(raw, target.to, resolver) end |