Module: Padrino::Helpers::OutputHelpers


Helpers related to buffer output for various template engines.

Defined Under Namespace

Modules: SinatraCurrentEngine Classes: AbstractHandler, ErbHandler, HamlHandler, HamlitHandler, SlimHandler

Class Method Summary

Instance Method Summary

Class Method Details

.handlers ⇒ Object

Returns the list of all available template handlers.

.register(engine, handler) ⇒ Object

Registers a new handler as available to the output helpers.

Instance Method Details

#block_is_template?(block) ⇒ Boolean

Returns true if the block is from a supported template type; false otherwise. Used to determine if html should be returned or concatenated to the view.


block_is_template?(block) => true

#capture_html(*args, &block) ⇒ String Also known as: capture

Captures the html from a block of template code for any available handler.

Be aware that trusting the html is up to the caller.


capture_html(&block) => "...html..."
capture_html(object_for_block, &block) => "...html..."
SafeBuffer.new + capture_html { "<foo>" }
# => "&lt;foo&gt;"
SafeBuffer.new.safe_concat(capture_html { "<foo>" })
# => "<foo>"

#concat_content(text = "") ⇒ Object Also known as: concat

Outputs the given text to the templates buffer directly.

The output might be subject to escaping, if it is not marked as safe.


concat_content("This will be output to the template buffer")

#concat_safe_content(text = "") ⇒ Object

Outputs the given text to the templates buffer directly, assuming that it is safe.


concat_safe_content("This will be output to the template buffer")

#content_for(key, content) ⇒ Object #content_for(key, &block) ⇒ Object

Capture a block or text of content to be rendered at a later time. Your blocks can also receive values, which are passed to them by yield_content.


content_for(:name) { ...content... }
content_for(:name) { |name| ...content... }
content_for(:name, "I'm Jeff")
content_for(:name, :flush => true) { ...new content... }

Options Hash (options):

  • :flush (Boolean) — Specifies whether to replace the content.

#content_for?(key) ⇒ TrueClass, FalseClass

Is there a content block for a given key?


content_for? :header => true

#yield_content(key, *args) ⇒ String

Render the captured content blocks for a given key. You can also pass values to the content blocks by passing them as arguments after the key.


yield_content :include
yield_content :head, "param1", "param2"
yield_content(:title) || "My page title"