class Pup::BaseController
Attributes
request[R]
Public Class Methods
new(request)
click to toggle source
# File lib/pup/controller/base_controller.rb, line 8 def initialize(request) @request ||= request end
Public Instance Methods
get_response()
click to toggle source
# File lib/pup/controller/base_controller.rb, line 12 def get_response @response end
render(view_name, locals = {})
click to toggle source
# File lib/pup/controller/base_controller.rb, line 16 def render(view_name, locals = {}) template = get_template(view_name) parameters = build_view_params(locals) response_body = Erubis::Eruby.new(template).result(parameters) make_response(response_body) end
Private Instance Methods
build_view_params(locals)
click to toggle source
# File lib/pup/controller/base_controller.rb, line 30 def build_view_params(locals) hash = {} vars = instance_variables vars.each { |name| hash[name] = instance_variable_get(name) } hash.merge(locals) end
controller_name()
click to toggle source
# File lib/pup/controller/base_controller.rb, line 50 def controller_name self.class.to_s.gsub("Controller", "").to_snakecase end
get_template(view_name)
click to toggle source
# File lib/pup/controller/base_controller.rb, line 23 def get_template(view_name) filename = File.join( APP_ROOT, "app", "views", controller_name, "#{view_name}.erb" ) File.read(filename) end
make_response(body, status = 200, headers = {})
click to toggle source
# File lib/pup/controller/base_controller.rb, line 38 def make_response(body, status = 200, headers = {}) @response = Rack::Response.new(body, status, headers) end
params()
click to toggle source
# File lib/pup/controller/base_controller.rb, line 42 def params request.params.with_indifferent_access end
redirect_to(location)
click to toggle source
# File lib/pup/controller/base_controller.rb, line 46 def redirect_to(location) make_response([], 302, "Location" => location) end