Module: BabyErubis::Renderer

Defined in:
lib/baby_erubis/renderer.rb

Overview

Module to define template rendering methods.

ex:

class MyController
  include BabyErubis::HtmlEscaper
  include BabyErubis::Renderer

  ERUBY_PATH      = ['.', 'templates']
  ERUBY_LAYOUT    = :_layout
  ERUBY_HTML      = BabyErubis::Html
  ERUBY_HTML_EXT  = '.html.eruby'
  ERUBY_TEXT      = BabyErubis::Text
  ERUBY_TEXT_EXT  = '.eruby'
  ERUBY_CACHE     = {}

  def index
    @items = ['A', 'B', 'C']
    ## renders 'templates/welcome.html.eruby'
    html = eruby_render_html(:welcome)
    return html
  end

end

Constant Summary collapse

ERUBY_PATH =
['.']
ERUBY_LAYOUT =
:_layout
ERUBY_HTML =
BabyErubis::Html
ERUBY_HTML_EXT =
'.html.eruby'
ERUBY_TEXT =
BabyErubis::Text
ERUBY_TEXT_EXT =
'.eruby'
ERUBY_CACHE =
{}

Instance Method Summary collapse

Instance Method Details

#eruby_render_html(template_name, layout: true, encoding: 'utf-8') ⇒ Object



48
49
50
51
52
53
54
55
56
# File 'lib/baby_erubis/renderer.rb', line 48

def eruby_render_html(template_name, layout: true, encoding: 'utf-8')
  return _eruby_render_template(template_name, layout) {|tmpl_name|
    ext = self.class.const_get :ERUBY_HTML_EXT
    _eruby_find_template("#{tmpl_name}#{ext}") {|fpath|
      tmpl_class = self.class.const_get :ERUBY_HTML
      tmpl_class.new.from_file(fpath, encoding)
    }
  }
end

#eruby_render_text(template_name, layout: false, encoding: 'utf-8') ⇒ Object



58
59
60
61
62
63
64
65
66
# File 'lib/baby_erubis/renderer.rb', line 58

def eruby_render_text(template_name, layout: false, encoding: 'utf-8')
  return _eruby_render_template(template_name, layout) {|tmpl_name|
    ext = self.class.const_get :ERUBY_TEXT_EXT
    _eruby_find_template("#{tmpl_name}#{ext}") {|fpath|
      tmpl_class = self.class.const_get :ERUBY_TEXT
      tmpl_class.new.from_file(fpath, encoding)
    }
  }
end