lib/slack-notifier/config.rb
# frozen_string_literal: true
module Slack
class Notifier
class Config
def initialize
@http_client = Util::HTTPClient
@defaults = {}
@middleware = %i[
format_message
format_attachments
at
channels
]
end
def http_client client=nil
return @http_client if client.nil?
raise ArgumentError, "the http client must respond to ::post" unless client.respond_to?(:post)
@http_client = client
end
def defaults new_defaults=nil
return @defaults if new_defaults.nil?
raise ArgumentError, "the defaults must be a Hash" unless new_defaults.is_a?(Hash)
@defaults = new_defaults
end
def middleware *args
return @middleware if args.empty?
@middleware =
if args.length == 1 && args.first.is_a?(Array) || args.first.is_a?(Hash)
args.first
else
args
end
end
end
end
end