class Object
Public Instance Methods
Source
# 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) log_metadata(**{ name.to_sym => true }) # Emulate newer hash syntax for older Ruby versions hash_response = config.except(:callback).map { |k, v| "#{k}: #{v}" }.join(", ") response = [name + "{#{hash_response}}"] # 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
rubocop:disable Metrics/AbcSize
Source
# File lib/coach/rspec.rb, line 16 def call config[:callback].call if config.include?(:callback) log_metadata(**{ name.to_sym => true }) # Emulate newer hash syntax for older Ruby versions hash_response = config.except(:callback).map { |k, v| "#{k}: #{v}" }.join(", ") response = [name + "{#{hash_response}}"] # 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
Source
# File lib/coach/rspec.rb, line 35 def null_middleware double(call: nil) end
rubocop:enable Metrics/AbcSize