Class: TestRunner::Cli::LabelFilters
- Inherits:
-
Object
- Object
- TestRunner::Cli::LabelFilters
- Defined in:
- lib/test-runner/cli/label_filters.rb
Instance Attribute Summary collapse
-
#filters ⇒ Object
readonly
protected
Returns the value of attribute filters.
Instance Method Summary collapse
-
#initialize(str_filters) ⇒ LabelFilters
constructor
A new instance of LabelFilters.
- #parse_all(str_filters) ⇒ Object protected
- #parse_one(v, sep) ⇒ Object protected
- #pass?(test) ⇒ Boolean
Constructor Details
#initialize(str_filters) ⇒ LabelFilters
Returns a new instance of LabelFilters.
4 5 6 |
# File 'lib/test-runner/cli/label_filters.rb', line 4 def initialize(str_filters) @filters = parse_all(str_filters) end |
Instance Attribute Details
#filters ⇒ Object (readonly, protected)
Returns the value of attribute filters.
15 16 17 |
# File 'lib/test-runner/cli/label_filters.rb', line 15 def filters @filters end |
Instance Method Details
#parse_all(str_filters) ⇒ Object (protected)
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/test-runner/cli/label_filters.rb', line 17 def parse_all(str_filters) ret = [] str_filters.each do |s| k, v = parse_one(s, '!=') if k ret << proc do |test| test.labels[k].to_s != v end next end k, v = parse_one(s, '=') if k ret << proc do |test| test.labels[k].to_s == v end next end raise GLI::BadCommandLine, "Invalid filter '#{v}'" end ret end |
#parse_one(v, sep) ⇒ Object (protected)
43 44 45 46 47 48 49 |
# File 'lib/test-runner/cli/label_filters.rb', line 43 def parse_one(v, sep) i = v.index(sep) return false unless i len = sep.length [v[0..i - 1], v[i + len..]] end |
#pass?(test) ⇒ Boolean
9 10 11 |
# File 'lib/test-runner/cli/label_filters.rb', line 9 def pass?(test) filters.all? { |f| f.call(test) } end |