Class: Osakana::Notifier

Inherits:
Object
  • Object
show all
Defined in:
lib/osakana/notifier.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.notify(title, attachments) ⇒ Object



33
34
35
# File 'lib/osakana/notifier.rb', line 33

def self.notify(title, attachments)
  new.notifiy(title, attachments)
end

Instance Method Details

#notifiy(title, attachments = []) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/osakana/notifier.rb', line 7

def notifiy(title, attachments = [])
  attachments << { title: "N/A" } if attachments.empty?

  if slack_webhook_url?
    slack = Slack::Incoming::Webhooks.new(slack_webhook_url, channel: slack_channel)
    slack.post title, attachments: attachments
  else
    puts title
    attachments.each do |attachment|
      puts attachment.dig(:title)
    end
  end
end

#slack_channelObject



25
26
27
# File 'lib/osakana/notifier.rb', line 25

def slack_channel
  ENV.fetch "SLACK_CHANNEL", "#general"
end

#slack_webhook_urlObject



21
22
23
# File 'lib/osakana/notifier.rb', line 21

def slack_webhook_url
  ENV.fetch "SLACK_WEBHOOK_URL"
end

#slack_webhook_url?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/osakana/notifier.rb', line 29

def slack_webhook_url?
  ENV.key? "SLACK_WEBHOOK_URL"
end