Class: SlackNotifier::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/slack_notifier/message.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.compose(text:, channel: nil, nickname: nil, icon_emoji: nil, report: nil, report_title: nil, report_color: nil) ⇒ Object



3
4
5
6
7
8
9
10
# File 'lib/slack_notifier/message.rb', line 3

def self.compose(text:, channel: nil, nickname: nil, icon_emoji: nil, report: nil, report_title: nil, report_color: nil)
  channel ||= Config.default_channel
  nickname ||= Config.default_nickname
  icon_emoji ||= Config.default_icon_emoji
  report_color ||= Config.default_report_color
  report_title ||= Config.default_report_title
  new(text, channel, nickname, icon_emoji, report, report_title, report_color)
end

.send(text:, channel: nil, nickname: nil, icon_emoji: nil, report: nil, report_title: nil, report_color: nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/slack_notifier/message.rb', line 12

def self.send(text:, channel: nil, nickname: nil, icon_emoji: nil, report: nil, report_title: nil, report_color: nil)
  compose(
    text: text,
    channel: channel,
    nickname: nickname,
    icon_emoji: icon_emoji,
    report: report,
    report_title: report_title,
    report_color: report_color
  ).tap(&:deliver)
rescue => ex
  raise ex if Config.raise_delivery_errors
  puts ex.message
  puts ex.backtrace.join("\n")
end

Instance Method Details

#deliverObject



28
29
30
31
32
33
34
35
36
# File 'lib/slack_notifier/message.rb', line 28

def deliver
  cmd = %(curl -X POST --data-urlencode 'payload=#{payload}' #{Config.webhook_url})
  puts "Executing: `#{cmd}`"

  result = `#{cmd}`
  puts "Result: #{result}"

  Time.now
end