module Deas::Erubis::TemplateHelpers::Methods

Public Instance Methods

capture_partial(name, locals = nil, &c) click to toggle source
# File lib/deas-erubis/template_helpers.rb, line 18
def capture_partial(name, locals = nil, &c)
  source_capture_partial(@default_source, name, locals, &c)
end
partial(name, locals = nil) click to toggle source
# File lib/deas-erubis/template_helpers.rb, line 14
def partial(name, locals = nil)
  source_partial(@default_source, name, locals)
end
source_capture_partial(source, name, locals = nil, &c) click to toggle source
# File lib/deas-erubis/template_helpers.rb, line 26
def source_capture_partial(source, name, locals = nil, &c)
  _erb_buffer source.partial(name, locals || {}, &Proc.new{ _erb_capture(&c) })
end
source_partial(source, name, locals = nil) click to toggle source
# File lib/deas-erubis/template_helpers.rb, line 22
def source_partial(source, name, locals = nil)
  source.partial(name, locals || {})
end

Private Instance Methods

_erb_buffer(content) click to toggle source
# File lib/deas-erubis/template_helpers.rb, line 50
def _erb_buffer(content)
  _erb_bufvar << content
end
_erb_bufvar() click to toggle source
# File lib/deas-erubis/template_helpers.rb, line 54
def _erb_bufvar
  instance_variable_get(_erb_bufvar_name)
end
_erb_bufvar_name() click to toggle source
# File lib/deas-erubis/template_helpers.rb, line 58
def _erb_bufvar_name
  Deas::Erubis::Source::BUFVAR_NAME
end
_erb_capture(&content) click to toggle source
# File lib/deas-erubis/template_helpers.rb, line 32
def _erb_capture(&content)
  begin
    # copy original buffer state
    orig_buf_value = _erb_bufvar
    instance_variable_set(_erb_bufvar_name, "\n")

    # evaluate the given content
    result = instance_eval(&content)
    new_buf_value = _erb_bufvar

    # return result if nothing buffered; otherwise return what was buffered
    new_buf_value == "\n" ? "\n#{result}" : new_buf_value
  ensure
    # reset buffer to original state
    instance_variable_set(_erb_bufvar_name, orig_buf_value)
  end
end