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