class Makanai::Application
Attributes
config[R]
request[R]
response[R]
router[R]
Public Class Methods
new(router:)
click to toggle source
# File lib/makanai/application.rb, line 13 def initialize(router:) @router = router @config = Settings end
Public Instance Methods
call(env)
click to toggle source
# File lib/makanai/application.rb, line 29 def call(env) @request = Makanai::Request.new(env) @response = Makanai::Response.new route_result = execute_route return route_result.result if route_result.instance_of?(Response) @response.body << execute_route @response.result end
run!()
click to toggle source
# File lib/makanai/application.rb, line 20 def run! app_config = config.rack_app_config handler = Rack::Handler.get(app_config[:handler]) handler.run(self, **{ Host: app_config[:host], Port: app_config[:port] }) rescue Interrupt handler.shutdown puts '==== Goodbye! :) ====' end
Private Instance Methods
execute_route()
click to toggle source
# File lib/makanai/application.rb, line 40 def execute_route route = router.bind!(url: request.url, method: request.method) # NOTE: merge dynamic url params (ex. /resources/1 -> { 'id' => '1' }) @request.params.merge!(route.url_args) route.process.call(request) rescue Makanai::Router::NotFound @response.status = 404 nil end