Module: Padrino::Helpers::OutputHelpers
- Included in:
- Middleman::MetaPages::ConfigSetting, Middleman::MetaPages::SitemapResource, MiniTest::Spec
- Defined in:
- lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers.rb,
lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers/erb_handler.rb,
lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers/haml_handler.rb,
lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers/slim_handler.rb,
lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers/abstract_handler.rb
Overview
Helpers related to buffer output for various template engines.
Defined Under Namespace
Modules: SinatraCurrentEngine Classes: AbstractHandler, ErbHandler, HamlHandler, SlimHandler
Class Method Summary collapse
-
.handlers ⇒ Object
Returns the list of all available template handlers.
- .included(base) ⇒ Object
-
.register(handler) ⇒ Object
Registers a new handler as available to the output helpers.
Instance Method Summary collapse
-
#block_is_template?(block) ⇒ Boolean
Returns true if the block is from a supported template type; false otherwise.
-
#capture_html(*args, &block) ⇒ String
(also: #capture)
Captures the html from a block of template code for any available handler.
-
#concat_content(text = "") ⇒ Object
(also: #concat)
Outputs the given text to the templates buffer directly.
-
#concat_safe_content(text = "") ⇒ Object
Outputs the given text to the templates buffer directly, assuming that it is safe.
-
#content_for(key, content = nil, &block) ⇒ Object
Capture a block or text of content to be rendered at a later time.
-
#content_for?(key) ⇒ TrueClass, FalseClass
Is there a content block for a given key?.
-
#yield_content(key, *args) ⇒ String
Render the captured content blocks for a given key.
Class Method Details
.handlers ⇒ Object
Returns the list of all available template handlers
11 12 13 |
# File 'lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers/abstract_handler.rb', line 11 def self.handlers @_template_handlers ||= [] end |
.included(base) ⇒ Object
8 9 10 |
# File 'lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers.rb', line 8 def self.included(base) # @private base.send(:include, SinatraCurrentEngine) unless base.method_defined?(:current_engine) end |
.register(handler) ⇒ Object
Registers a new handler as available to the output helpers
22 23 24 |
# File 'lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers/abstract_handler.rb', line 22 def self.register(handler) handlers << handler end |
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.
111 112 113 114 |
# File 'lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers.rb', line 111 def block_is_template?(block) handler = find_proper_handler block && handler && handler.block_is_type?(block) end |
#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.
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers.rb', line 49 def capture_html(*args, &block) handler = find_proper_handler captured_block, captured_html = nil, "" if handler && handler.is_type? && handler.block_is_type?(block) captured_html, captured_block = handler.capture_from_template(*args, &block) end # invoking the block directly if there was no template captured_html = block_given? && ( captured_block || block.call(*args) ) if captured_html.blank? captured_html end |
#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.
73 74 75 76 77 78 79 80 |
# File 'lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers.rb', line 73 def concat_content(text="") handler = find_proper_handler if handler && handler.is_type? handler.concat_to_template(text) else # theres no template to concat, return the text directly text end end |
#concat_safe_content(text = "") ⇒ Object
Outputs the given text to the templates buffer directly, assuming that it is safe.
94 95 96 |
# File 'lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers.rb', line 94 def concat_safe_content(text="") concat_content text.html_safe end |
#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
133 134 135 |
# File 'lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers.rb', line 133 def content_for(key, content = nil, &block) content_blocks[key.to_sym] << (block_given? ? block : Proc.new { content }) end |
#content_for?(key) ⇒ TrueClass, FalseClass
Is there a content block for a given key?
149 150 151 |
# File 'lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers.rb', line 149 def content_for?(key) content_blocks[key.to_sym].present? end |
#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.
171 172 173 174 175 |
# File 'lib/vendored-middleman-deps/padrino-helpers-0.11.2/lib/padrino-helpers/output_helpers.rb', line 171 def yield_content(key, *args) blocks = content_blocks[key.to_sym] return nil if blocks.empty? mark_safe(blocks.map { |content| capture_html(*args, &content) }.join) end |