class Tennpipes::Helpers::OutputHelpers::AbstractHandler
Attributes
output_buffer[R]
template[R]
Public Class Methods
new(template)
click to toggle source
# File lib/tennpipes-helper/output_helpers/abstract_handler.rb, line 7 def initialize(template) @template = template @output_buffer = template.instance_variable_get(:@_out_buf) end
Public Instance Methods
capture_from_template(*args) { |*args| ... }
click to toggle source
Captures the html from a block of template code for this handler.
This method is called to capture content of a block-loving helpers in templates. Haml
has a special method to do this, for Erb and Slim we save original buffer, call the block and then restore the buffer.
@example
@handler.capture_from_template(&block) => "...html..."
# File lib/tennpipes-helper/output_helpers/abstract_handler.rb, line 31 def capture_from_template(*args, &block) self.output_buffer, _buf_was = ActiveSupport::SafeBuffer.new, self.output_buffer raw = yield(*args) captured = template.instance_variable_get(:@_out_buf) self.output_buffer = _buf_was engine_matches?(block) && !captured.empty? ? captured : raw.to_s end
concat_to_template(text="")
click to toggle source
Outputs the given text to the template.
This method is called when template uses block-aware helpers. For Slim and Haml
such helpers just return output to use with `=`. For Erb this method is implemented in ErbHandler
by concatenating given text to output buffer.
@example
@handler.concat_to_template("This will be output to the template buffer")
# File lib/tennpipes-helper/output_helpers/abstract_handler.rb, line 49 def concat_to_template(text="") text end
engine_matches?(block)
click to toggle source
Returns true if the block given is of the handler's template type; false otherwise.
@example
@handler.engine_matches?(block) => true
# File lib/tennpipes-helper/output_helpers/abstract_handler.rb, line 18 def engine_matches?(block) end
Protected Instance Methods
output_buffer=(val)
click to toggle source
# File lib/tennpipes-helper/output_helpers/abstract_handler.rb, line 55 def output_buffer=(val) template.instance_variable_set(:@_out_buf, val) end