class GrailsController::Base
Attributes
params[R]
req[R]
res[R]
Public Class Methods
new(req, res, params = {})
click to toggle source
# File lib/controller_base.rb, line 12 def initialize(req, res, params = {}) @req = req @res = res @params = params.merge(req.params) end
Public Instance Methods
already_built_response?()
click to toggle source
# File lib/controller_base.rb, line 18 def already_built_response? @already_built_response end
invoke_action(name)
click to toggle source
# File lib/controller_base.rb, line 47 def invoke_action(name) self.send(name) render(name) unless already_built_response? end
redirect_to(url)
click to toggle source
# File lib/controller_base.rb, line 22 def redirect_to(url) raise 'Already rendered' if already_built_response? @already_built_response = true @res.set_header('Location', url) @res.status = 302 session.store_session(@res) end
render(template_name)
click to toggle source
# File lib/controller_base.rb, line 38 def render(template_name) content = ERB.new(File.read("views/#{self.class.name.underscore}/#{template_name}.html.erb")).result(binding) render_content(content, 'text/html') end
render_content(content, content_type)
click to toggle source
# File lib/controller_base.rb, line 30 def render_content(content, content_type) raise 'Already rendered' if already_built_response? @already_built_response = true @res['Content-Type'] = content_type @res.write(content) session.store_session(@res) end
session()
click to toggle source
# File lib/controller_base.rb, line 43 def session @session ||= Session.new(@req) end