class CiSlack::Messager
Public Instance Methods
deliver(message = nil, status = :success)
click to toggle source
status: failed or success
# File lib/ci_slack/messager.rb, line 7 def deliver(message = nil, status = :success) return unless ENV[ci_computer.to_s] author, commit_message = last_git_log client.post(text: text(status, author, commit_message, message), icon_emoji: ":#{ send(status.to_s + '_icon') }:") end
method_missing(method, *args)
click to toggle source
Calls superclass method
# File lib/ci_slack/messager.rb, line 16 def method_missing(method, *args) if %i[success_icon failed_icon skip_success_message failed_title success_title webhook channel ci_computer bot_name project slack_names].include?(method) CiSlack.configuration.send(method) else super end end
Private Instance Methods
client()
click to toggle source
# File lib/ci_slack/messager.rb, line 50 def client @client ||= ::Slack::Notifier.new(webhook, channel: channel, username: bot_name) end
last_git_log()
click to toggle source
# File lib/ci_slack/messager.rb, line 46 def last_git_log `git log -1 --pretty='%an||%s'`.split('||').map(&:strip) end
slack_name(author, status)
click to toggle source
# File lib/ci_slack/messager.rb, line 32 def slack_name(author, status) slack_name = slack_names.select { |key, _| author.downcase =~ key }.values.first unless slack_name.nil? if skip_success_message.include?(slack_name) && status == :success slack_name else "<@#{ slack_name }>" end else author end end
text(status, author, commit_message, message)
click to toggle source
# File lib/ci_slack/messager.rb, line 28 def text(status, author, commit_message, message) "#{ project }. #{ send(status.to_s + '_title') }\n#{ slack_name(author, status) } : #{ commit_message }\n#{ message }" end