Sha256: ce9146792580127827cbfebb892b44058c08edcdbdd935bbb9b6f4699e798fcf
Contents?: true
Size: 1.1 KB
Versions: 3
Compression:
Stored size: 1.1 KB
Contents
module Lita # Stores Rack middleware for later use in a +Rack::Builder+. # @since 4.0.2 # @api private class MiddlewareRegistry # A Rack middleware and its initialization arguments. class MiddlewareWrapper < Struct.new(:middleware, :args, :block); end extend Forwardable def_delegators :@registry, :each, :empty? def initialize @registry = [] end # Adds a Rack middleware with no initialization arguments. # @param middleware [#call] A Rack middleware. # @return [void] def push(middleware) @registry << MiddlewareWrapper.new(middleware, [], nil) end alias_method :<<, :push # Adds a Rack middleware with initialization argumens. Uses the same interface as # +Rack::Builder#use+. # @param middleware [#call] A Rack middleware. # @param args [Array] Arbitrary initialization arguments for the middleware. # @yield An optional block to be passed to the constructor of the middleware. # @return [void] def use(middleware, *args) @registry << MiddlewareWrapper.new(middleware, args, (proc if block_given?)) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
lita-4.0.4 | lib/lita/middleware_registry.rb |
lita-4.0.3 | lib/lita/middleware_registry.rb |
lita-4.0.2 | lib/lita/middleware_registry.rb |