class Panda::BaseController
Attributes
request[R]
Public Class Methods
new(request)
click to toggle source
# File lib/panda/base_controller.rb, line 8 def initialize(request) @request ||= request end
Public Instance Methods
controller_name()
click to toggle source
# File lib/panda/base_controller.rb, line 40 def controller_name self.class.to_s.gsub(/Controller$/, "").to_snake_case end
dispatch(action)
click to toggle source
# File lib/panda/base_controller.rb, line 44 def dispatch(action) send(action) render(action) unless get_response get_response end
get_response()
click to toggle source
# File lib/panda/base_controller.rb, line 24 def get_response @response end
params()
click to toggle source
# File lib/panda/base_controller.rb, line 12 def params request.params end
redirect_to(location, status: 301)
click to toggle source
# File lib/panda/base_controller.rb, line 16 def redirect_to(location, status: 301) response([], status, "Location" => location) end
render(*args)
click to toggle source
# File lib/panda/base_controller.rb, line 28 def render(*args) response(render_template(*args)) end
render_template(view_name, locals = {})
click to toggle source
# File lib/panda/base_controller.rb, line 32 def render_template(view_name, locals = {}) layout_template, view_template = layout_view_template(view_name) title = view_name.to_s.tr("_", " ") layout_template.render(self, title: title) do view_template.render(self, locals) end end
response(body, status = 200, header = {})
click to toggle source
# File lib/panda/base_controller.rb, line 20 def response(body, status = 200, header = {}) @response = Rack::Response.new(body, status, header) end
Private Instance Methods
layout_view_template(view_name)
click to toggle source
# File lib/panda/base_controller.rb, line 52 def layout_view_template(view_name) layout_template = Tilt::ERBTemplate.new( File.join(APP_ROOT, "app", "views", "layouts", "application.html.erb") ) view_template = Tilt::ERBTemplate.new( File.join( APP_ROOT, "app", "views", controller_name, "#{view_name}.html.erb" ) ) [layout_template, view_template] end