module Roda::RodaPlugins::ContentFor

  1. lib/roda/plugins/content_for.rb

The content_for plugin is designed to be used with the render plugin, allowing you to store content inside one template, and retrieve that content inside a separate template. Most commonly, this is so view templates can set content for the layout template to display outside of the normal content pane.

In the template in which you want to store content, call content_for with a block:

<% content_for :foo do %>
  Some content here.
<% end %>

You can also set the raw content as the second argument, instead of passing a block:

<% content_for :foo, "Some content" %>

In the template in which you want to retrieve content, call content_for without the block:

<%= content_for :foo %>

If content_for is used multiple times with the same key, by default, the last call will override previous calls. If you want to append to the content, pass the :append option when loading the plugin:

plugin :content_for, :append=>true

Methods

Public Class

  1. configure
  2. load_dependencies

Public Class methods

configure (app, opts = {})

Configure whether to append or overwrite if content_for is called multiple times to set data. Overwrite is default, use the :append option to append.

[show source]
# File lib/roda/plugins/content_for.rb, line 45
def self.configure(app, opts = {})
  app.opts[:append_content_for] = opts.fetch(:append, false)
end
load_dependencies (app, _opts = {})

Depend on the render plugin, since this plugin only makes sense when the render plugin is used.

[show source]
# File lib/roda/plugins/content_for.rb, line 38
def self.load_dependencies(app, _opts = {})
  app.plugin :render
end