Module: HMote::Render
- Includes:
- Helpers
- Defined in:
- lib/hmote/render.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- CONTENT_TYPE =
"Content-Type".freeze
- DEFAULT_CONTENT_TYPE =
"text/html; charset=utf-8".freeze
Class Method Summary collapse
Instance Method Summary collapse
- #partial(template, params = {}) ⇒ Object
- #render(template, params = {}, layout = settings[:hmote]) ⇒ Object
- #template_path(template) ⇒ Object
- #view(template, params = {}, layout = ) ⇒ Object
Class Method Details
.setup(app) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/hmote/render.rb', line 9 def self.setup(app) app.settings[:hmote] ||= {} app.layout("layout") app.view_path("views") end |
Instance Method Details
#partial(template, params = {}) ⇒ Object
25 26 27 |
# File 'lib/hmote/render.rb', line 25 def partial(template, params = {}) return hmote(template_path(template), params.merge(app: self), TOPLEVEL_BINDING) end |
#render(template, params = {}, layout = settings[:hmote]) ⇒ Object
16 17 18 19 |
# File 'lib/hmote/render.rb', line 16 def render(template, params = {}, layout = settings[:hmote][:layout]) res.headers[CONTENT_TYPE] ||= DEFAULT_CONTENT_TYPE res.write(view(template, params, layout)) end |
#template_path(template) ⇒ Object
29 30 31 |
# File 'lib/hmote/render.rb', line 29 def template_path(template) return File.join(settings[:hmote][:views], "#{template}.mote") end |
#view(template, params = {}, layout = ) ⇒ Object
21 22 23 |
# File 'lib/hmote/render.rb', line 21 def view(template, params = {}, layout = settings[:hmote][:layout]) return partial(layout, params.merge(content: partial(template, params))) end |