Sha256: 81ea7c1cca077652e5148622d34010b69018c487909cb8e00a019be856524e50
Contents?: true
Size: 488 Bytes
Versions: 4
Compression:
Stored size: 488 Bytes
Contents
# frozen_string_literal: true module Wayfarer module Middleware Chain = Struct.new(:middlewares) do extend Forwardable def self.empty new([]) end delegate push: :middlewares def call(task) traverse = lambda do |i| if middlewares[i] middlewares[i].call(task) { traverse.call(i + 1) } elsif block_given? yield end end traverse.call(0) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems