module Faraday::MiddlewareRegistry
Adds the ability for other modules to register and lookup middleware classes.
Public Instance Methods
Lookup middleware class with a registered Symbol shortcut.
@param key [Symbol] key for the registered middleware. @return [Class] a middleware Class. @raise [Faraday::Error] if given key is not registered
@example
module Faraday class Whatever < Middleware register_middleware(foo: Whatever) end end Faraday::Middleware.lookup_middleware(:foo) # => Faraday::Whatever
# File lib/faraday/middleware_registry.rb, line 55 def lookup_middleware(key) load_middleware(key) || raise(Faraday::Error, "#{key.inspect} is not registered on #{self}") end
Register middleware class(es) on the current module.
@param mappings [Hash] Middleware
mappings from a lookup symbol to a middleware class. @return [void]
@example Lookup by a constant
module Faraday class Whatever < Middleware # Middleware looked up by :foo returns Faraday::Whatever::Foo. register_middleware(foo: Whatever) end end
# File lib/faraday/middleware_registry.rb, line 26 def register_middleware(**mappings) middleware_mutex do registered_middleware.update(mappings) end end
# File lib/faraday/middleware_registry.rb, line 9 def registered_middleware @registered_middleware ||= {} end
Unregister a previously registered middleware class.
@param key [Symbol] key for the registered middleware.
# File lib/faraday/middleware_registry.rb, line 35 def unregister_middleware(key) registered_middleware.delete(key) end