lib/slack_notifier/message.rb in slack_notifier-1.0.1 vs lib/slack_notifier/message.rb in slack_notifier-1.0.2

- old
+ new

@@ -1,11 +1,13 @@ module SlackNotifier class Message - def self.send(text:, channel: nil, nickname: nil, icon_emoji: nil, icon_url: nil, report: nil) + def self.send(text:, channel: nil, nickname: nil, icon_emoji: nil, report: nil, report_color: nil) channel ||= Config.default_channel nickname ||= Config.default_nickname - new(text, channel, nickname, icon_emoji, icon_url, report).tap(&:deliver) + 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 @@ -31,60 +33,36 @@ Time.now end private - def initialize(message, channel, nickname, icon, icon_ur, report) + def initialize(message, channel, nickname, icon, report, report_color) @message = message @channel = channel @nickname = nickname - @created_at = Time.now + @icon_emoji = icon @report = report - - set_icon(icon, icon_ur) + @report_color = report_color + @created_at = Time.now end def icon_param - @icon_emoji ? { icon_emoji: @icon_emoji } : { icon_url: @icon_url } + { icon_emoji: @icon_emoji } end - def set_icon(icon_emoji, icon_url) - if no_icon?(icon_emoji, icon_url) - @icon_emoji = Config.default_icon_emoji - end - - if more_than_one_icon?(icon_emoji, icon_url) - fail 'Please specify either an icon_emoji or an icon_url' - end - - if icon_emoji - @icon_emoji = icon_emoji - else - @icon_url = icon_url - end - end - - def no_icon?(icon_emoji, icon_url) - icon_emoji.nil? && icon_url.nil? - end - - def more_than_one_icon?(icon_emoji, icon_url) - !icon_emoji.nil? && !icon_url.nil? - end - def compose_attachment { attachments: [ { title: Config.default_report_title, - color: Config.default_report_color, + color: @report_color, text: key_value_pairs_to_s(@report) } ] } end def key_value_pairs_to_s(hash) - hash.map { |k, v| "#{k}: #{v}" }.join("\n") + hash.map { |k, v| "#{k.to_s.gsub(/_/, ' ').titleize}: #{v}" }.join("\n") end end end