lib/rage-rb.rb in rage-rb-1.7.0 vs lib/rage-rb.rb in rage-rb-1.8.0

- old
+ new

@@ -5,31 +5,21 @@ require "iodine" require "pathname" module Rage def self.application - app = Application.new(__router) - - config.middleware.middlewares.reverse.inject(app) do |next_in_chain, (middleware, args, block)| - # in Rails compatibility mode we first check if the middleware is a part of the Rails middleware stack; - # if it is - it is expected to be built using `ActionDispatch::MiddlewareStack::Middleware#build` - if Rage.config.internal.rails_mode - rails_middleware = Rails.application.config.middleware.middlewares.find { |m| m.name == middleware.name } - end - - if rails_middleware - rails_middleware.build(next_in_chain) - else - middleware.new(next_in_chain, *args, &block) - end - end + with_middlewares(Application.new(__router), config.middleware.middlewares) end def self.multi_application Rage::Router::Util::Cascade.new(application, Rails.application) end + def self.cable + Rage::Cable + end + def self.routes Rage::Router::DSL.new(__router) end def self.__router @@ -88,10 +78,27 @@ else patch.call end end + # @private + def self.with_middlewares(app, middlewares) + middlewares.reverse.inject(app) do |next_in_chain, (middleware, args, block)| + # in Rails compatibility mode we first check if the middleware is a part of the Rails middleware stack; + # if it is - it is expected to be built using `ActionDispatch::MiddlewareStack::Middleware#build` + if Rage.config.internal.rails_mode + rails_middleware = Rails.application.config.middleware.middlewares.find { |m| m.name == middleware.name } + end + + if rails_middleware + rails_middleware.build(next_in_chain) + else + middleware.new(next_in_chain, *args, &block) + end + end + end + module Router module Strategies end module DSLPlugins @@ -104,9 +111,10 @@ end end autoload :Cookies, "rage/cookies" autoload :Session, "rage/session" + autoload :Cable, "rage/cable/cable" end module RageController end