module Erector::Externals
Externals
are a mechanism by which a widget can declare page-level resources upon which it depends. They are not emitted during the widget’s normal emiting process. Rather, the Erector::Widget::Page keeps track of all the widgets it emits, then goes back and inserts the proper tags for all the externals inside its HEAD element.
Public Class Methods
included(base)
click to toggle source
# File lib/erector/externals.rb, line 9 def self.included(base) base.extend ClassMethods end
Public Instance Methods
render_externals(options_to_external_emiter = {})
click to toggle source
# File lib/erector/externals.rb, line 88 def render_externals(options_to_external_emiter = {}) output_for_externals = Erector::Output.new nested_widgets = output.widgets externalizer = ExternalRenderer.new({:classes => nested_widgets}.merge(options_to_external_emiter)) externalizer._emit(:output => output_for_externals) output_for_externals.to_a end
render_with_externals(options_to_external_emiter = {})
click to toggle source
# File lib/erector/externals.rb, line 78 def render_with_externals(options_to_external_emiter = {}) output = Erector::Output.new self.to_a(:output => output) # emit all the externals onto this new output buffer nested_widgets = output.widgets.to_a options_to_external_emiter = {:classes => nested_widgets}.merge(options_to_external_emiter) emiter = ExternalRenderer.new(options_to_external_emiter) externals = emiter.to_a(:output => output) output.to_a end