Class: ConvenientService::Support::Middleware::StackBuilder::Entities::Builders::Rack

Inherits:
Custom
  • Object
show all
Defined in:
lib/convenient_service/support/middleware/stack_builder/entities/builders/rack.rb

Instance Attribute Summary

Attributes inherited from Custom

#name, #stack

Instance Method Summary collapse

Methods inherited from Custom

#==, #clear, #delete, #dup, #empty?, #has?, #initialize, #insert, #insert_after, #insert_after_each, #insert_before_each, #replace, #to_a, #unshift, #use

Methods included from AbstractMethod

abstract_method

Constructor Details

This class inherits a constructor from ConvenientService::Support::Middleware::StackBuilder::Entities::Builders::Custom

Instance Method Details

#call(env) ⇒ Object

Returns Can be any type.



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/convenient_service/support/middleware/stack_builder/entities/builders/rack.rb', line 40

def call(env)
  return env if stack.empty?

  app =
    stack
      .map { |middleware| proc { |app| middleware.new(app) } }
      .reverse
      .reduce(Custom::Constants::INITIAL_MIDDLEWARE) { |a, e| e[a] }

  app.call(env)
end

#call_with_original(env, original) ⇒ Object

Returns Can be any type.

Parameters:

  • env (Hash{Symbol => Object})
  • original (Proc)

Returns:

  • (Object)

    Can be any type.



23
24
25
# File 'lib/convenient_service/support/middleware/stack_builder/entities/builders/rack.rb', line 23

def call_with_original(env, original)
  dup.use(Custom::Entities::ProcWithNew.new(original)).call(env)
end