class MocaRlibs::SlackNotifier

Slack通知クライアント

Constants

PREFIX
SLACK_DEFAULT_CHANNEL
SLACK_DEFAULT_USER
SLACK_WEBHOOK_URL

Attributes

client[R]

Public Class Methods

error(err, channel: nil, username: nil, webhook: nil) click to toggle source

エラーログを送信

@param [StandardError] err エラーオブジェクト @param [String] channel チャンネル名 @param [String] username ユーザー名 @param [String] webhook Web Hook URL

# File lib/moca_rlibs/slack_notifier.rb, line 64
def self.error(err, channel: nil, username: nil, webhook: nil)
  backtrace = (err.backtrace&.join || 'no backtrace info').sub('`', '\'').slice(0, 2000)
  new(webhook: webhook, channel: channel, username: username)
    .send("#{err.message}\n```\n#{backtrace}\n```", at: 'here')
end
new(webhook: nil, channel: nil, username: nil) click to toggle source

@param [String] webhook Web Hook URL @param [String] channel チャンネル名 @param [String] username ユーザー名

# File lib/moca_rlibs/slack_notifier.rb, line 23
def initialize(webhook: nil, channel: nil, username: nil)
  @client = Slack::Notifier.new(
    webhook || SLACK_WEBHOOK_URL,
    channel:  channel  || SLACK_DEFAULT_CHANNEL,
    username: username || SLACK_DEFAULT_USER
  )
end
send(message, channel: nil, username: nil, webhook: nil, at: nil) click to toggle source

シンプルなテキストを送信する

@param [String] message 送信メッセージ @param [String] channel チャンネル名 @param [String] username ユーザー名 @param [String] webhook Web Hook URL @param [String] at メンション先

# File lib/moca_rlibs/slack_notifier.rb, line 53
def self.send(message, channel: nil, username: nil, webhook: nil, at: nil)
  new(webhook: webhook, channel: channel, username: username)
    .send(message, at: at)
end

Public Instance Methods

error(err) click to toggle source

エラーログを送信

@param [StandardError] err エラーオブジェクト

# File lib/moca_rlibs/slack_notifier.rb, line 42
def error(err)
  send("#{err.message}\n```#{err.backtrace}```", at: 'here')
end
send(message, at: nil) click to toggle source

シンプルなテキストを送信する

@param [String] message 送信メッセージ @param [String] at メンション先

# File lib/moca_rlibs/slack_notifier.rb, line 35
def send(message, at: nil)
  @client.ping("#{at ? "<!#{at}> " : ''}#{message}")
end