Sha256: 9e2d4a67e83b10d4ba49ef52207f567ea20e094b7cc889c1f6f8459cd1d09b64

Contents?: true

Size: 774 Bytes

Versions: 18

Compression:

Stored size: 774 Bytes

Contents

require 'routemaster/dirty/filter'

module Routemaster
  module Middleware
    # Filters event payloads passed in the environment (in
    # `env['routemaster.payload']`), is any.
    #
    # Will use `Routemaster::Dirty::Filter` by default.
    class Filter
      # @param filter [Routemaster::Dirty::Filter] an event filter (optional;
      # will be created using the `redis` and `expiry` options if not provided)
      def initialize(app, filter:nil, **_)
        @app    = app
        @filter = filter || Routemaster::Dirty::Filter.new
      end

      def call(env)
        payload = env['routemaster.payload']
        if payload && payload.any?
          env['routemaster.payload'] = @filter.run(payload)
        end
        @app.call(env)
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
routemaster-drain-3.6.2 lib/routemaster/middleware/filter.rb
routemaster-drain-3.6.1 lib/routemaster/middleware/filter.rb
routemaster-drain-3.6.0 lib/routemaster/middleware/filter.rb
routemaster-drain-3.5.1 lib/routemaster/middleware/filter.rb
routemaster-drain-3.5.0 lib/routemaster/middleware/filter.rb
routemaster-drain-3.4.0 lib/routemaster/middleware/filter.rb
routemaster-drain-3.3.0 lib/routemaster/middleware/filter.rb
routemaster-drain-3.2.0 lib/routemaster/middleware/filter.rb
routemaster-drain-3.1.0 lib/routemaster/middleware/filter.rb
routemaster-drain-3.0.3 lib/routemaster/middleware/filter.rb
routemaster-drain-3.0.2 lib/routemaster/middleware/filter.rb
routemaster-drain-3.0.1 lib/routemaster/middleware/filter.rb
routemaster-drain-3.0.0 lib/routemaster/middleware/filter.rb
routemaster-drain-2.5.4 lib/routemaster/middleware/filter.rb
routemaster-drain-2.5.3 lib/routemaster/middleware/filter.rb
routemaster-drain-2.5.2 lib/routemaster/middleware/filter.rb
routemaster-drain-2.5.1 lib/routemaster/middleware/filter.rb
routemaster-drain-2.5.0 lib/routemaster/middleware/filter.rb