lib/rage/application.rb in rage-rb-0.5.1 vs lib/rage/application.rb in rage-rb-0.5.2
- old
+ new
@@ -1,43 +1,30 @@
# frozen_string_literal: true
class Rage::Application
def initialize(router)
- Iodine.on_state(:on_start) do
- Fiber.set_scheduler(Rage::FiberScheduler.new)
- end
@router = router
end
def call(env)
- fiber = Fiber.schedule do
- init_logger
+ init_logger
- handler = @router.lookup(env)
+ handler = @router.lookup(env)
- response = if handler
- params = Rage::ParamsParser.prepare(env, handler[:params])
- handler[:handler].call(env, params)
- else
- [404, {}, ["Not Found"]]
- end
-
- rescue Exception => e
- exception_str = "#{e.class} (#{e.message}):\n#{e.backtrace.join("\n")}"
- Rage.logger.error(exception_str)
- response = [500, {}, [exception_str]]
-
- ensure
- finalize_logger(env, response, params)
- Iodine.publish(env["IODINE_REQUEST_ID"], "") # notify Iodine the request can now be served
- end
-
- # the fiber encountered blocking IO and yielded; instruct Iodine to pause the request;
- if fiber.alive?
- [:__http_defer__, fiber]
+ response = if handler
+ params = Rage::ParamsParser.prepare(env, handler[:params])
+ handler[:handler].call(env, params)
else
- fiber.__get_result
+ [404, {}, ["Not Found"]]
end
+
+ rescue Exception => e
+ exception_str = "#{e.class} (#{e.message}):\n#{e.backtrace.join("\n")}"
+ Rage.logger.error(exception_str)
+ response = [500, {}, [exception_str]]
+
+ ensure
+ finalize_logger(env, response, params)
end
private
DEFAULT_LOG_CONTEXT = {}.freeze