Top Level Namespace
Defined Under Namespace
Instance Method Summary collapse
-
#build_middleware(name) ⇒ Object
rubocop:disable Metrics/AbcSize.
-
#null_middleware ⇒ Object
rubocop:enable Metrics/AbcSize.
Instance Method Details
#build_middleware(name) ⇒ Object
rubocop:disable Metrics/AbcSize
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/coach/rspec.rb', line 9 def build_middleware(name) Class.new(Coach::Middleware) do # To access `name`, we need to use `define_method` instead of `def` define_method(:to_s) { "<Middleware#{name}>" } define_method(:name) { name } define_singleton_method(:name) { name } def call config[:callback].call if config.include?(:callback) (**{ name.to_sym => true }) response = [name + config.except(:callback).inspect.to_s] # Build up a list of middleware called, in the order they were called if next_middleware response.concat(next_middleware.call) else response end end end end |
#null_middleware ⇒ Object
rubocop:enable Metrics/AbcSize
33 34 35 |
# File 'lib/coach/rspec.rb', line 33 def null_middleware double(call: nil) end |