Class: Rollerskates::BaseController
- Defined in:
- lib/rollerskates/base_controller.rb
Instance Method Summary collapse
- #controller_name ⇒ Object
- #finish(method_name, _status = nil) ⇒ Object
- #get_response ⇒ Object
- #headers ⇒ Object
-
#initialize(request) ⇒ BaseController
constructor
A new instance of BaseController.
- #params ⇒ Object
- #redirect_to(path, status) ⇒ Object
- #render(*args) ⇒ Object
- #render_template(view_name, _locals = {}) ⇒ Object
- #response(body = [], status = 200, header = headers) ⇒ Object
Constructor Details
#initialize(request) ⇒ BaseController
Returns a new instance of BaseController.
6 7 8 |
# File 'lib/rollerskates/base_controller.rb', line 6 def initialize(request) @request ||= request end |
Instance Method Details
#controller_name ⇒ Object
48 49 50 |
# File 'lib/rollerskates/base_controller.rb', line 48 def controller_name self.class.to_s.gsub(/Controller$/, "").snakize end |
#finish(method_name, _status = nil) ⇒ Object
43 44 45 46 |
# 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 ⇒ Object
26 27 28 |
# File 'lib/rollerskates/base_controller.rb', line 26 def get_response @response end |
#headers ⇒ Object
10 11 12 |
# File 'lib/rollerskates/base_controller.rb', line 10 def headers { "Content-type" => "text/html" } end |
#params ⇒ Object
22 23 24 |
# File 'lib/rollerskates/base_controller.rb', line 22 def params @request.params end |
#redirect_to(path, status) ⇒ Object
18 19 20 |
# File 'lib/rollerskates/base_controller.rb', line 18 def redirect_to(path, status) response([], status[:status], "Location" => path) end |
#render(*args) ⇒ Object
30 31 32 |
# File 'lib/rollerskates/base_controller.rb', line 30 def render(*args) response(render_template(*args)) end |
#render_template(view_name, _locals = {}) ⇒ Object
34 35 36 37 38 39 40 41 |
# 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) ⇒ Object
14 15 16 |
# File 'lib/rollerskates/base_controller.rb', line 14 def response(body = [], status = 200, header = headers) @response = Rack::Response.new(body, status, header) end |