Sha256: e7a10e41dfe38af5d93202d6c1de34111cd9a03e7e14c1026172caca2b8f09bc

Contents?: true

Size: 2 KB

Versions: 7

Compression:

Stored size: 2 KB

Contents

module Slackistrano
  module Messaging
    class Deprecated < Base

      def initialize(env: nil, team: nil, channel: nil, token: nil, webhook: nil)
        run_locally do
          warn("[slackistrano] You are using an outdated configuration that will be removed soon.")
          warn("[slackistrano] Please upgrade soon! <https://github.com/phallstrom/slackistrano>")
        end

        super
      end

      def icon_url
        fetch("slack_icon_url".to_sym) || super
      end

      def icon_emoji
        fetch("slack_icon_emoji".to_sym) || super
      end

      def username
        fetch("slack_username".to_sym) || super
      end

      def deployer
        fetch("slack_deploy_user".to_sym) || super
      end

      def channels_for(action)
        fetch("slack_channel_#{action}".to_sym) || super
      end

      def payload_for_updating
        make_message(__method__, super)
      end

      def payload_for_reverting
        make_message(__method__, super)
      end

      def payload_for_updated
        make_message(__method__, super.merge(color: 'good'))
      end

      def payload_for_reverted
        make_message(__method__, super.merge(color: 'warning'))
      end

      def payload_for_failed
        make_message(__method__, super.merge(color: 'danger'))
      end

      private ##################################################

      def make_message(method, options={})
        action = method.to_s.sub('payload_for_', '')

        return nil unless fetch("slack_run".to_sym, true) && fetch("slack_run_#{action}".to_sym, true)

        attachment = options.merge({
          title:      fetch(:"slack_title_#{action}"),
          pretext:    fetch(:"slack_pretext_#{action}"),
          text:       fetch(:"slack_msg_#{action}", options[:text]),
          fields:     fetch(:"slack_fields_#{action}", []),
          fallback:   fetch(:"slack_fallback_#{action}"),
          mrkdwn_in:  [:text, :pretext]
        }).reject{|k, v| v.nil? }

        {attachments: [attachment]}
      end

    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
slackistrano-3.8.4 lib/slackistrano/messaging/deprecated.rb
slackistrano-3.8.3 lib/slackistrano/messaging/deprecated.rb
slackistrano-3.8.2 lib/slackistrano/messaging/deprecated.rb
slackistrano-3.8.1 lib/slackistrano/messaging/deprecated.rb
slackistrano-3.1.1 lib/slackistrano/messaging/deprecated.rb
slackistrano-3.1.0 lib/slackistrano/messaging/deprecated.rb
slackistrano-3.1.0.beta lib/slackistrano/messaging/deprecated.rb