Sha256: dcdf56e1dcd3c4e7a5aaa4977dec8abc2957f18b00134c5d8763f4e5090ba827

Contents?: true

Size: 1.37 KB

Versions: 14

Compression:

Stored size: 1.37 KB

Contents

module Guard
  class RSpec < Plugin
    class Notifier
      attr_accessor :options

      def initialize(options = {})
        @options = options
      end

      def notify(summary)
        return unless options[:notification]
        failure_count, pending_count = _parse_summary(summary)
        image = _image(failure_count, pending_count)
        priority = _priority(image)
        Guard::Compat::UI.notify(summary,
                                 title: @options[:title],
                                 image: image,
                                 priority: priority)
      end

      def notify_failure
        return unless options[:notification]
        Guard::Compat::UI.notify("Failed",
                                 title: @options[:title],
                                 image: :failed,
                                 priority: 2)
      end

      private

      def _parse_summary(summary)
        summary.match(/(\d+) failures( \((\d+) pending\))?/) do |m|
          return m[1].to_i, m[3].to_i
        end
        [0, 0]
      end

      def _image(failure_count, pending_count)
        if failure_count > 0
          :failed
        elsif pending_count > 0
          :pending
        else
          :success
        end
      end

      def _priority(image)
        { failed:   2,
          pending: -1,
          success: -2
        }[image]
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 3 rubygems

Version Path
guard-rspec-4.6.5 lib/guard/rspec/notifier.rb
mastermind_adeybee-0.1.4 vendor/bundle/ruby/2.2.0/gems/guard-rspec-4.6.4/lib/guard/rspec/notifier.rb
mastermind_adeybee-0.1.3 vendor/bundle/ruby/2.2.0/gems/guard-rspec-4.6.4/lib/guard/rspec/notifier.rb
mastermind_adeybee-0.1.2 vendor/bundle/ruby/2.2.0/gems/guard-rspec-4.6.4/lib/guard/rspec/notifier.rb
mastermind_adeybee-0.1.1 vendor/bundle/ruby/2.2.0/gems/guard-rspec-4.6.4/lib/guard/rspec/notifier.rb
geminfo-0.1.0 path/gems/guard-rspec-4.6.4/lib/guard/rspec/notifier.rb
guard-rspec-4.6.4 lib/guard/rspec/notifier.rb
guard-rspec-4.6.3 lib/guard/rspec/notifier.rb
guard-rspec-4.6.2 lib/guard/rspec/notifier.rb
guard-rspec-4.6.1 lib/guard/rspec/notifier.rb
guard-rspec-4.6.0 lib/guard/rspec/notifier.rb
guard-rspec-4.5.2 lib/guard/rspec/notifier.rb
guard-rspec-4.5.1 lib/guard/rspec/notifier.rb
guard-rspec-4.5.0 lib/guard/rspec/notifier.rb