slack-notifier 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/slack-notifier/config.rb +1 -1
- data/lib/slack-notifier/payload_middleware.rb +1 -0
- data/lib/slack-notifier/payload_middleware/at.rb +36 -0
- data/lib/slack-notifier/payload_middleware/base.rb +1 -3
- data/lib/slack-notifier/version.rb +1 -1
- data/spec/lib/slack-notifier/config_spec.rb +2 -2
- data/spec/lib/slack-notifier/payload_middleware/at_spec.rb +25 -0
- metadata +5 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 2de365236adc9d11e81ff2d438f8f8623de09e8a
         | 
| 4 | 
            +
              data.tar.gz: cdf04ae41bb99465317aa0be35aecb9fa841d52b
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a83b5175eacbc6694b640ccdb42dbf11f7fcd46d35ee91c59da8d0cb48972f77fcaef35a2caa4175bf6e95b9480b51ed4a36a4bcff39e789f0b744ec5b56f06c
         | 
| 7 | 
            +
              data.tar.gz: 1f0fa17db345193cf89a412934743bc2b972c434e19557a6f64cbebbda15149b6690507306767a3ec4906b4f7811b0b38ef4fd753f4f2c22861940001ddaf7e8
         | 
| @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Slack
         | 
| 4 | 
            +
              class Notifier
         | 
| 5 | 
            +
                class PayloadMiddleware
         | 
| 6 | 
            +
                  class At < Base
         | 
| 7 | 
            +
                    middleware_name :at
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                    options at: []
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                    def call payload={}
         | 
| 12 | 
            +
                      return payload unless payload[:at]
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                      payload[:text] = "#{format_ats(payload.delete(:at))}#{payload[:text]}"
         | 
| 15 | 
            +
                      payload
         | 
| 16 | 
            +
                    end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                    private
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                      def format_ats ats
         | 
| 21 | 
            +
                        Array(ats).map { |at| "<#{at_cmd_char(at)}#{at}> " }
         | 
| 22 | 
            +
                                  .join("")
         | 
| 23 | 
            +
                      end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                      def at_cmd_char at
         | 
| 26 | 
            +
                        case at
         | 
| 27 | 
            +
                        when :here, :channel, :everyone, :group
         | 
| 28 | 
            +
                          "!"
         | 
| 29 | 
            +
                        else
         | 
| 30 | 
            +
                          "@"
         | 
| 31 | 
            +
                        end
         | 
| 32 | 
            +
                      end
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
            end
         | 
| @@ -24,11 +24,9 @@ module Slack | |
| 24 24 | 
             
                      @options  = self.class.default_opts.merge opts
         | 
| 25 25 | 
             
                    end
         | 
| 26 26 |  | 
| 27 | 
            -
                     | 
| 28 | 
            -
                    def call payload={}
         | 
| 27 | 
            +
                    def call _payload={}
         | 
| 29 28 | 
             
                      raise NoMethodError, "method `call` not defined for class #{self.class}"
         | 
| 30 29 | 
             
                    end
         | 
| 31 | 
            -
                    # rubocop:enable Lint/UnusedMethodArgument
         | 
| 32 30 | 
             
                  end
         | 
| 33 31 | 
             
                end
         | 
| 34 32 | 
             
              end
         | 
| @@ -43,10 +43,10 @@ RSpec.describe Slack::Notifier::Config do | |
| 43 43 | 
             
              end
         | 
| 44 44 |  | 
| 45 45 | 
             
              describe "#middleware" do
         | 
| 46 | 
            -
                it "is [:format_message, :format_attachments] if not set" do
         | 
| 46 | 
            +
                it "is [:format_message, :format_attachments, :at] if not set" do
         | 
| 47 47 | 
             
                  subject = described_class.new
         | 
| 48 48 |  | 
| 49 | 
            -
                  expect(subject.middleware).to eq [:format_message, :format_attachments]
         | 
| 49 | 
            +
                  expect(subject.middleware).to eq [:format_message, :format_attachments, :at]
         | 
| 50 50 | 
             
                end
         | 
| 51 51 |  | 
| 52 52 | 
             
                it "takes an array or a splat of args" do
         | 
| @@ -0,0 +1,25 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            RSpec.describe Slack::Notifier::PayloadMiddleware::At do
         | 
| 4 | 
            +
              it "can handle array at" do
         | 
| 5 | 
            +
                subject = described_class.new(:notifier)
         | 
| 6 | 
            +
                payload = { text: "hello", at: [:john, :ken, :here] }
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                expect(subject.call(payload)).to eq text: "<@john> <@ken> <!here> hello"
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              it "can handle single at option" do
         | 
| 12 | 
            +
                subject = described_class.new(:notifier)
         | 
| 13 | 
            +
                payload = { text: "hello", at: :alice }
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                expect(subject.call(payload)).to eq text: "<@alice> hello"
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              it "generates :text in payload if given :at & no :text" do
         | 
| 19 | 
            +
                subject = described_class.new(:notifier)
         | 
| 20 | 
            +
                input_payload  = { at: [:here], attachments: [{ text: "hello" }] }
         | 
| 21 | 
            +
                output_payload = { text: "<!here> ", attachments: [{ text: "hello" }] }
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                expect(subject.call(input_payload)).to eq output_payload
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: slack-notifier
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2. | 
| 4 | 
            +
              version: 2.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Steven Sloan
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017- | 
| 11 | 
            +
            date: 2017-03-03 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies: []
         | 
| 13 13 | 
             
            description: " A slim ruby wrapper for posting to slack webhooks "
         | 
| 14 14 | 
             
            email:
         | 
| @@ -20,6 +20,7 @@ files: | |
| 20 20 | 
             
            - lib/slack-notifier.rb
         | 
| 21 21 | 
             
            - lib/slack-notifier/config.rb
         | 
| 22 22 | 
             
            - lib/slack-notifier/payload_middleware.rb
         | 
| 23 | 
            +
            - lib/slack-notifier/payload_middleware/at.rb
         | 
| 23 24 | 
             
            - lib/slack-notifier/payload_middleware/base.rb
         | 
| 24 25 | 
             
            - lib/slack-notifier/payload_middleware/format_attachments.rb
         | 
| 25 26 | 
             
            - lib/slack-notifier/payload_middleware/format_message.rb
         | 
| @@ -31,6 +32,7 @@ files: | |
| 31 32 | 
             
            - spec/end_to_end_spec.rb
         | 
| 32 33 | 
             
            - spec/integration/ping_integration_test.rb
         | 
| 33 34 | 
             
            - spec/lib/slack-notifier/config_spec.rb
         | 
| 35 | 
            +
            - spec/lib/slack-notifier/payload_middleware/at_spec.rb
         | 
| 34 36 | 
             
            - spec/lib/slack-notifier/payload_middleware/base_spec.rb
         | 
| 35 37 | 
             
            - spec/lib/slack-notifier/payload_middleware/format_attachments_spec.rb
         | 
| 36 38 | 
             
            - spec/lib/slack-notifier/payload_middleware/format_message_spec.rb
         | 
| @@ -68,6 +70,7 @@ test_files: | |
| 68 70 | 
             
            - spec/end_to_end_spec.rb
         | 
| 69 71 | 
             
            - spec/integration/ping_integration_test.rb
         | 
| 70 72 | 
             
            - spec/lib/slack-notifier/config_spec.rb
         | 
| 73 | 
            +
            - spec/lib/slack-notifier/payload_middleware/at_spec.rb
         | 
| 71 74 | 
             
            - spec/lib/slack-notifier/payload_middleware/base_spec.rb
         | 
| 72 75 | 
             
            - spec/lib/slack-notifier/payload_middleware/format_attachments_spec.rb
         | 
| 73 76 | 
             
            - spec/lib/slack-notifier/payload_middleware/format_message_spec.rb
         |