class Radical::View

Attributes

_layout[RW]
_views_path[RW]

Public Class Methods

layout(name) click to toggle source
# File lib/radical/view.rb, line 49
def layout(name)
  @_layout = name
end
path(path = nil) click to toggle source
# File lib/radical/view.rb, line 45
def path(path = nil)
  @_views_path = path
end
render(dir, name, scope, options = {}) click to toggle source
# File lib/radical/view.rb, line 53
def render(dir, name, scope, options = {})
  t = template!(dir, name)

  layout = template('', @_layout || 'layout') unless options[:layout] != false

  if layout
    layout.render scope, {} do
      t.render scope, options[:locals] || {}
    end
  else
    t.render scope
  end
end
template(dir, name) click to toggle source
# File lib/radical/view.rb, line 37
def template(dir, name)
  Tilt.new(view_path(dir, name), engine_class: CaptureEngine, escape_html: true)
end
template!(dir, name) click to toggle source
# File lib/radical/view.rb, line 41
def template!(dir, name)
  Tilt.new(view_path!(dir, name), engine_class: CaptureEngine, escape_html: true)
end
view_path(dir, name) click to toggle source
# File lib/radical/view.rb, line 33
def view_path(dir, name)
  File.join(@_views_path || '.', 'views', dir, "#{name}.erb")
end
view_path!(dir, name) click to toggle source
# File lib/radical/view.rb, line 25
def view_path!(dir, name)
  filename = view_path(dir, name)

  raise "Could not find view file: #{filename}. You need to create it." unless File.exist?(filename)

  filename
end