class Routemaster::Middleware::Dirty
If an event payload was place in the environment (‘env`) by a previous middleware, mark each corresponding entity as dirty.
All events are passed through.
The dirty map is passed as ‘:map` to the constructor and must respond to `#mark` (like `Routemaster::Dirty::Map`).
Public Class Methods
new(app, options = {})
click to toggle source
# File lib/routemaster/middleware/dirty.rb, line 14 def initialize(app, options = {}) @app = app @map = options.fetch(:dirty_map) { Routemaster::Dirty::Map.new } end
Public Instance Methods
call(env)
click to toggle source
# File lib/routemaster/middleware/dirty.rb, line 19 def call(env) env['routemaster.dirty'] = dirty = [] env.fetch('routemaster.payload', []).each do |event| next if event['type'] == 'noop' next unless @map.mark(event['url']) dirty << event['url'] end @app.call(env) end