Sha256: 7ae6b6569fe0a186709dcf31822605eaa305f2b0a155205700870b68cc2c3413
Contents?: true
Size: 1.94 KB
Versions: 2
Compression:
Stored size: 1.94 KB
Contents
require 'multi_json' module Slackify class Payload def initialize(context, status) @context = context @status = status end def self.build(context, status) new(context, status).build end def build "'payload=#{payload}'" end def payload MultiJson.dump( { channel: fetch(:slack_channel), username: fetch(:slack_username), icon_emoji: fetch(:slack_emoji), parse: fetch(:slack_parse), attachments: [ { fallback: text, color: color, text: text, fields: [ { title: 'Status', value: @status, short: true }, { title: 'Stage', value: fetch(:stage), short: true }, { title: 'Branch', value: fetch(:branch), short: true }, { title: 'Revision', value: fetch(:current_revision), short: true }, { title: 'Hosts', value: fetch(:slack_hosts), short: true }, ] } ] } ) end def fetch(*args, &block) @context.fetch(*args, &block) end def text @text ||= case @status when :starting fetch(:slack_deploy_starting_text) when :success fetch(:slack_text) when :failed fetch(:slack_deploy_failed_text) end end def color case @status when :starting fetch(:slack_deploy_starting_color) when :success fetch(:slack_deploy_finished_color) when :failed fetch(:slack_deploy_failed_color) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
capistrano-slackify-2.6.1 | lib/slackify.rb |
capistrano-slackify-2.6.0 | lib/slackify.rb |