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

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



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

def self.send(text:, channel: nil, nickname: nil, icon_emoji: nil, report: nil, report_color: nil)
  channel ||= Config.default_channel
  nickname ||= Config.default_nickname
  icon = icon_emoji || Config.default_icon_emoji
  report_color = report_color || Config.default_report_color
  new(text, channel, nickname, icon, report, 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



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/slack_notifier/message.rb', line 15

def deliver
  payload_hash = {
      username: @nickname,
      text: @message.gsub('\'', '`'),
      channel: @channel
  }

  payload_hash.merge!(icon_param)
  payload_hash.merge!(compose_attachment) if !@report.nil? && !@report.empty?

  payload = payload_hash.to_json

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

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

  Time.now
end