Class: CacheStache::Web
- Inherits:
-
Object
- Object
- CacheStache::Web
- Defined in:
- lib/cache_stache/web.rb
Class Method Summary collapse
- .call(env) ⇒ Object
- .middlewares ⇒ Object
- .reset_middlewares! ⇒ Object
- .reset_routes! ⇒ Object
- .use(middleware, *args, &block) ⇒ Object
Class Method Details
.call(env) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/cache_stache/web.rb', line 8 def call(env) ensure_routes_loaded! # Build app only once and cache it unless @app # Capture middlewares outside the Rack::Builder context mw = middlewares @app = Rack::Builder.new do mw.each { |middleware, args, block| use(middleware, *args, &block) } run CacheStache::Engine end.to_app Rails.logger.info "[CacheStache::Web] Rack app built successfully" end @app.call(env) end |
.middlewares ⇒ Object
31 32 33 |
# File 'lib/cache_stache/web.rb', line 31 def middlewares @middlewares ||= [] end |
.reset_middlewares! ⇒ Object
35 36 37 38 |
# File 'lib/cache_stache/web.rb', line 35 def reset_middlewares! @middlewares = [] @app = nil end |
.reset_routes! ⇒ Object
40 41 42 43 |
# File 'lib/cache_stache/web.rb', line 40 def reset_routes! @routes_loaded = false @app = nil end |
.use(middleware, *args, &block) ⇒ Object
27 28 29 |
# File 'lib/cache_stache/web.rb', line 27 def use(middleware, *args, &block) middlewares << [middleware, args, block] end |