class Dingding::Notifier::PayloadMiddleware::Stack
Attributes
notifier[R]
stack[R]
Public Class Methods
new(notifier)
click to toggle source
# File lib/dingding-notifier/payload_middleware/stack.rb, line 10 def initialize notifier @notifier = notifier @stack = [] end
Public Instance Methods
call(payload={})
click to toggle source
# File lib/dingding-notifier/payload_middleware/stack.rb, line 28 def call payload={} result = stack.inject payload do |pld, middleware| middleware.call(pld) end result end
set(*middlewares)
click to toggle source
# File lib/dingding-notifier/payload_middleware/stack.rb, line 15 def set *middlewares middlewares = if middlewares.length == 1 && middlewares.first.is_a?(Hash) middlewares.first else middlewares.flatten end @stack = middlewares.map do |key, opts| PayloadMiddleware.registry.fetch(key).new(*[notifier, opts].compact) end end