class ControllerBase
Attributes
params[R]
req[R]
res[R]
Public Class Methods
new(req, res, params = {})
click to toggle source
# File lib/laris/controller/controller_base.rb, line 10 def initialize(req, res, params = {}) @req = req @res = res @params = params.merge(req.params) body = req.body.read if body =~ /^{.*}$/ @params.merge!(JSON.parse(body)) end end
Public Instance Methods
already_built_response?()
click to toggle source
# File lib/laris/controller/controller_base.rb, line 21 def already_built_response? @already_built_response end
flash()
click to toggle source
# File lib/laris/controller/controller_base.rb, line 67 def flash @flash ||= Flash.new(req) end
h(text)
click to toggle source
# File lib/laris/controller/controller_base.rb, line 25 def h(text) CGI::escapeHTML(text) end
invoke_action(name, method)
click to toggle source
# File lib/laris/controller/controller_base.rb, line 71 def invoke_action(name, method) unless method == :get || req.xhr? verify_authenticity end self.send(name) render(name) unless already_built_response? end
redirect_to(url)
click to toggle source
# File lib/laris/controller/controller_base.rb, line 29 def redirect_to(url) raise DoubleRenderError if already_built_response? res['Location'] = url res.status = 302 store_cookies(res) @already_built_response = true end
render(template_name)
click to toggle source
# File lib/laris/controller/controller_base.rb, line 49 def render(template_name) path = File.join( Laris::ROOT, 'app/views', controller_name.remove("_controller"), "#{template_name}.html.erb", ) template = File.read(path) content = ERB.new(template).result(binding) render_content(content, "text/html") end
render_content(content, content_type)
click to toggle source
# File lib/laris/controller/controller_base.rb, line 39 def render_content(content, content_type) raise DoubleRenderError if already_built_response? res['Content-Type'] = content_type res.write(content) store_cookies(res) @already_built_response = true end
session()
click to toggle source
# File lib/laris/controller/controller_base.rb, line 63 def session @session ||= Session.new(req) end
Private Instance Methods
controller_name()
click to toggle source
# File lib/laris/controller/controller_base.rb, line 87 def controller_name self.class.name.underscore end