slack-notifier/slack-notifier

View on GitHub
lib/slack-notifier/payload_middleware/base.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module Slack
  class Notifier
    class PayloadMiddleware
      class Base
        class << self
          def middleware_name name
            PayloadMiddleware.register self, name.to_sym
          end

          def options default_opts
            @default_opts = default_opts
          end

          def default_opts
            @default_opts ||= {}
          end
        end

        attr_reader :notifier, :options

        def initialize notifier, opts={}
          @notifier = notifier
          @options  = self.class.default_opts.merge opts
        end

        def call _payload={}
          raise NoMethodError, "method `call` not defined for class #{self.class}"
        end
      end
    end
  end
end