class Rollerskates::BaseController

Public Class Methods

new(request) click to toggle source
# File lib/rollerskates/base_controller.rb, line 6
def initialize(request)
  @request ||= request
end

Public Instance Methods

controller_name() click to toggle source
# File lib/rollerskates/base_controller.rb, line 48
def controller_name
  self.class.to_s.gsub(/Controller$/, "").snakize
end
finish(method_name, _status = nil) click to toggle source
# File lib/rollerskates/base_controller.rb, line 43
def finish(method_name, _status = nil)
  render(method_name, {}) unless get_response
  get_response
end
get_response() click to toggle source
# File lib/rollerskates/base_controller.rb, line 26
def get_response
  @response
end
headers() click to toggle source
# File lib/rollerskates/base_controller.rb, line 10
def headers
  { "Content-type" => "text/html" }
end
params() click to toggle source
# File lib/rollerskates/base_controller.rb, line 22
def params
  @request.params
end
redirect_to(path, status) click to toggle source
# File lib/rollerskates/base_controller.rb, line 18
def redirect_to(path, status)
  response([], status[:status], "Location" => path)
end
render(*args) click to toggle source
# File lib/rollerskates/base_controller.rb, line 30
def render(*args)
  response(render_template(*args))
end
render_template(view_name, _locals = {}) click to toggle source
# File lib/rollerskates/base_controller.rb, line 34
def render_template(view_name, _locals = {})
  views_folder = [APP_ROOT, "app", "views"].join("/")
  file_name = File.join(views_folder, controller_name, "#{view_name}.erb")
  layout_name = File.join(views_folder, "layouts", "application.erb")
  layout = Tilt.new(layout_name)
  template = Tilt.new(file_name)
  layout.render(self) { template.render(self) }
end
response(body = [], status = 200, header = headers) click to toggle source
# File lib/rollerskates/base_controller.rb, line 14
def response(body = [], status = 200, header = headers)
  @response = Rack::Response.new(body, status, header)
end