* Rubocop fixes * Rubocop fixes * Fixed rubocop violation * Fixed policies rubocop violations * More rubocop fixes
53 lines
1.5 KiB
Ruby
53 lines
1.5 KiB
Ruby
Rails.application.config.to_prepare do
|
|
Rails.root.glob("lib/slack/notifier/util/*.rb").each do |filename|
|
|
require_dependency filename
|
|
end
|
|
end
|
|
|
|
class NoOpHTTPClient
|
|
def self.post(uri, kwargs = {})
|
|
# bonus, you could log or observe posted params here
|
|
end
|
|
end
|
|
|
|
module SlackNotifierInitializer
|
|
def self.create_test_channel_notifier
|
|
return create_stubbed_notifier if ApplicationConfig["SLACK_WEBHOOK_URL"].blank?
|
|
|
|
Slack::Notifier.new(
|
|
ApplicationConfig["SLACK_WEBHOOK_URL"],
|
|
channel: "#test",
|
|
username: "development_test_bot",
|
|
)
|
|
end
|
|
|
|
def self.create_stubbed_notifier
|
|
Slack::Notifier.new "WEBHOOK_URL" do
|
|
http_client NoOpHTTPClient
|
|
end
|
|
end
|
|
|
|
def self.init_slack_client
|
|
default_options = if Rails.env.production?
|
|
{
|
|
channel: ApplicationConfig["SLACK_CHANNEL"],
|
|
username: "activity_bot"
|
|
}
|
|
elsif Rails.env.test?
|
|
{
|
|
channel: "#test",
|
|
username: "development_test_bot"
|
|
}
|
|
end
|
|
|
|
webhook_url = ApplicationConfig["SLACK_WEBHOOK_URL"] || ""
|
|
use_no_op_client = Rails.env.test? || webhook_url.blank?
|
|
|
|
Slack::Notifier.new(webhook_url) do
|
|
defaults(default_options)
|
|
http_client(NoOpHTTPClient) if use_no_op_client
|
|
end
|
|
end
|
|
end
|
|
|
|
SlackClient = SlackNotifierInitializer.init_slack_client
|