Class: Kwipper::Application
- Inherits:
-
Object
- Object
- Kwipper::Application
- Includes:
- ControllerHelpers, RendersViews
- Defined in:
- lib/kwipper/application.rb
Constant Summary
Constants included from RendersViews
RendersViews::VIEWS_PATH, RendersViews::VIEW_EXT
Instance Attribute Summary collapse
-
#action ⇒ Object
readonly
Returns the value of attribute action.
-
#request ⇒ Object
readonly
Returns the value of attribute request.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
Instance Method Summary collapse
Methods included from RendersViews
Instance Attribute Details
#action ⇒ Object (readonly)
Returns the value of attribute action.
6 7 8 |
# File 'lib/kwipper/application.rb', line 6 def action @action end |
#request ⇒ Object (readonly)
Returns the value of attribute request.
6 7 8 |
# File 'lib/kwipper/application.rb', line 6 def request @request end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
6 7 8 |
# File 'lib/kwipper/application.rb', line 6 def response @response end |
Instance Method Details
#process! ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/kwipper/application.rb', line 30 def process! if Controller::ROUTES.key? request.route_key response.set_status :ok response.content_type = 'text/html' controller_class, @action = Controller::ROUTES[request.route_key] controller = controller_class.new request, response if controller.respond_to? @action @view = controller.process @action response.body = render :layout else raise Kwipper::NotFoundError, "#{self} does not know #{@action}" end elsif (file_name = public_file_request?) response.set_status :ok response.content_type = get_content_type file_name response.body = File.read file_name else raise Kwipper::NotFoundError end end |
#respond_to(request) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/kwipper/application.rb', line 8 def respond_to(request) @request = request @response = Response.new request begin start_time = Time.now.to_f process! log.debug "#{"Processed #{request.info}".blue} in #{sprintf '%.8f', Time.now.to_f - start_time}s" rescue Kwipper::AuthenticationRequired redirect '/' log.debug "401 Not Authorized".yellow rescue Kwipper::NotFoundError render_not_found log.warn @response.info.yellow rescue => e render_error e log.fatal "#{@response.info.red}\n#{verbose_error(e)}" end @response end |