• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

guard / guard / 1455

pending completion
1455

push

travis-ci

e2
Release 2.11.1

5188 of 5439 relevant lines covered (95.39%)

14.69 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

90.91
/lib/guard/internals/groups.rb
1
require "guard/group"
5✔
2

3
module Guard
5✔
4
  # @private api
5
  module Internals
5✔
6
    class Groups
5✔
7
      DEFAULT_GROUPS = [:common, :default]
5✔
8

9
      def initialize
5✔
10
        @groups = DEFAULT_GROUPS.map { |name| Group.new(name) }
99 all except jruby and rbx ✔
11
      end
12

13
      def all(filter = nil)
5✔
14
        return @groups if filter.nil?
99 all except jruby and rbx ✔
15
        matcher = matcher_for(filter)
81 all except jruby and rbx ✔
16
        @groups.select { |group| matcher.call(group) }
309 all except jruby and rbx ✔
17
      end
18

19
      def add(name, options = {})
5✔
20
        all(name).first || Group.new(name, options).tap do |group|
×
21
          fail if name == :specs && options.empty?
48 all except jruby and rbx ✔
22
          @groups << group
48 all except jruby and rbx ✔
23
        end
66 all except jruby and rbx ✔
24
      end
25

26
      private
5✔
27

28
      def matcher_for(filter)
5✔
29
        case filter
81 all except jruby and rbx ✔
30
        when String, Symbol
31
          lambda { |group| group.name == filter.to_sym }
279 all except jruby and rbx ✔
32
        when Regexp
33
          lambda { |group| group.name.to_s =~ filter }
30 all except jruby and rbx ✔
34
        else
35
          fail "Invalid filter: #{filter.inspect}"
×
36
        end
37
      end
38
    end
39
  end
40
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2023 Coveralls, Inc