class Kronos::Logger::Slack

Public Class Methods

new(slack_webhook_url) click to toggle source
# File lib/kronos/logger/slack.rb, line 9
def initialize(slack_webhook_url)
  @slack_uri = URI.parse(slack_webhook_url)
  @use_ssl = @slack_uri.scheme == 'https'
end

Public Instance Methods

error(msg) click to toggle source
# File lib/kronos/logger/slack.rb, line 18
def error(msg)
  send_to_slack("[`Kronos`][`ERROR`][`#{Time.now.iso8601}`] #{msg}", ':red_circle:')
end
info(msg) click to toggle source
# File lib/kronos/logger/slack.rb, line 14
def info(msg)
  send_to_slack("[`Kronos`][`INFO`][`#{Time.now.iso8601}`] #{msg}", ':information_source:')
end
success(msg) click to toggle source
# File lib/kronos/logger/slack.rb, line 22
def success(msg)
  send_to_slack("[`Kronos`][`SUCCESS`][`#{Time.now.iso8601}`] #{msg}", ':white_check_mark:')
end

Private Instance Methods

send_to_slack(message, emoji) click to toggle source
# File lib/kronos/logger/slack.rb, line 28
def send_to_slack(message, emoji)
  request = Net::HTTP::Post.new(@slack_uri)
  request.body = { text: message, icon_emoji: emoji }.to_json
  Net::HTTP.start(@slack_uri.host, @slack_uri.port, use_ssl: @use_ssl) { |http| http.request(request) }
end