class JsRoutes::Middleware
A Rack middleware that automatically updates routes file whenever routes.rb is modified
Inspired by github.com/fnando/i18n-js/blob/v3/lib/i18n/js/middleware.rb
Public Class Methods
Source
# File lib/js_routes/middleware.rb, line 17 def initialize(app) @app = app @digest = T.let(nil, T.nilable(String)) end
Public Instance Methods
Source
# File lib/js_routes/middleware.rb, line 23 def call(env) update_js_routes @app.call(env) end
Protected Instance Methods
Source
# File lib/js_routes/middleware.rb, line 45 def fetch_digest JsRoutes.digest rescue Errno::ENOENT nil end
Source
# File lib/js_routes/middleware.rb, line 40 def regenerate JsRoutes.generate!(typed: true) end
Source
# File lib/js_routes/middleware.rb, line 31 def update_js_routes new_digest = fetch_digest unless new_digest == @digest regenerate @digest = new_digest end end