class Slackert::Alerter
Slack client responsible for sending composed Slack messages @param [String] Slack incoming webhook URL to a particular channel
Public Class Methods
new(webhook_url)
click to toggle source
# File lib/slackert/alerter.rb, line 12 def initialize(webhook_url) @uri = URI.parse(webhook_url) @https = configure_https end
Public Instance Methods
debug(content)
click to toggle source
Sends a debug Slack message if logging level is set at Level::DEBUG @param [Hash] Slack message
# File lib/slackert/alerter.rb, line 20 def debug(content) return if Slackert.level < Level::DEBUG post_to_slack(content) end
error(content)
click to toggle source
Sends an error Slack message @param [Hash] Slack message
# File lib/slackert/alerter.rb, line 38 def error(content) post_to_slack(content) end
info(content)
click to toggle source
Sends an info Slack message if loggin level is set at Level::INFO or lower @param [Hash] Slack message
# File lib/slackert/alerter.rb, line 29 def info(content) return if Slackert.level < Level::INFO post_to_slack(content) end
Private Instance Methods
base_post_req()
click to toggle source
# File lib/slackert/alerter.rb, line 62 def base_post_req req = Net::HTTP::Post.new(@uri) req['Content-type'] = 'application/json' req end
configure_https()
click to toggle source
# File lib/slackert/alerter.rb, line 44 def configure_https https = Net::HTTP.new(@uri.host, @uri.port) https.use_ssl = true https end
post_to_slack(content)
click to toggle source
# File lib/slackert/alerter.rb, line 50 def post_to_slack(content) raise 'Message content cannot be empty.' if content.empty? req = base_post_req req.body = content.to_json res = @https.request(req) if res.code != '200' puts "Slackert::Slack message sending unsuccesful (Code: #{res.code}, Message: #{res.read_body})" end end