class Grimm::BaseController
Attributes
request[R]
response[R]
Public Class Methods
action(request, action_name)
click to toggle source
# File lib/grimm/controller.rb, line 63 def self.action(request, action_name) new(request).dispatch(action_name) end
new(request)
click to toggle source
# File lib/grimm/controller.rb, line 7 def initialize(request) @request = request end
Public Instance Methods
controller_name()
click to toggle source
# File lib/grimm/controller.rb, line 49 def controller_name self.class.to_s.gsub(/Controller$/, "").snake_case end
dispatch(action)
click to toggle source
# File lib/grimm/controller.rb, line 57 def dispatch(action) send(action) render(action) unless get_response get_response end
get_response()
click to toggle source
# File lib/grimm/controller.rb, line 45 def get_response @response end
get_vars()
click to toggle source
# File lib/grimm/controller.rb, line 36 def get_vars vars = {} instance_variables.each do |var| key = var.to_s.delete("@").to_sym vars[key] = instance_variable_get(var) end vars end
params()
click to toggle source
# File lib/grimm/controller.rb, line 11 def params request.params end
redirect_to(url)
click to toggle source
# File lib/grimm/controller.rb, line 53 def redirect_to(url) @response = Rack::Response.new({}, 302, "location" => url) end
render(*args)
click to toggle source
# File lib/grimm/controller.rb, line 15 def render(*args) response(render_template(*args)) end
render_template(view_name, locals = {})
click to toggle source
# File lib/grimm/controller.rb, line 23 def render_template(view_name, locals = {}) template = Tilt::ERBTemplate.new(File.join($:.first, "app", "views", "layouts", "application.html.erb")) title = view_name.to_s.tr("_", " ").capitalize view = "#{view_name}.html.erb" view_template = Tilt::ERBTemplate.new(File.join($:.first, "app", "views", controller_name, view)) template.render(self, title: title) do view_template.render(self, locals.merge!(get_vars)) end end