Sha256: 1366dd9e9fa4a274f38af6649fcff88fb8d668b49ed001deb8df714d4e741637
Contents?: true
Size: 883 Bytes
Versions: 2
Compression:
Stored size: 883 Bytes
Contents
# frozen_string_literal: true module Dynflow class Middleware::Register include Algebrick::TypeCheck attr_reader :rules def initialize @rules = Hash.new do |h, k| h[k] = { before: [], after: [], replace: [] } end end def use(middleware_class, options = {}) unknown_options = options.keys - [:before, :after, :replace] if unknown_options.any? raise ArgumentError, "Unexpected options: #{unknown_options}" end @rules[middleware_class].merge!(options) do |key, old, new| old + Array(new) end end def do_not_use(middleware_class) use nil, :replace => middleware_class end def merge!(register) Type! register, Middleware::Register register.rules.each do |klass, rules| use(klass, rules) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dynflow-1.9.0 | lib/dynflow/middleware/register.rb |
dynflow-1.8.3 | lib/dynflow/middleware/register.rb |