class Dynflow::Middleware::Register

Attributes

rules[R]

Public Class Methods

new() click to toggle source
# File lib/dynflow/middleware/register.rb, line 9
def initialize
  @rules = Hash.new do |h, k|
    h[k] = { before:  [],
             after:   [],
             replace: [] }
  end
end

Public Instance Methods

do_not_use(middleware_class) click to toggle source
# File lib/dynflow/middleware/register.rb, line 27
def do_not_use(middleware_class)
  use nil, :replace => middleware_class
end
merge!(register) click to toggle source
# File lib/dynflow/middleware/register.rb, line 31
def merge!(register)
  Type! register, Middleware::Register
  register.rules.each do |klass, rules|
    use(klass, rules)
  end
end
use(middleware_class, options = {}) click to toggle source
# File lib/dynflow/middleware/register.rb, line 17
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