class Gurke::FeatureList::Filter

Constants

TagFilter

Attributes

files[R]
options[R]

Public Class Methods

new(options, files) click to toggle source
# File lib/gurke/feature_list.rb, line 65
def initialize(options, files)
  @options = options
  @files   = files
end

Public Instance Methods

filtered?(scenario) click to toggle source
# File lib/gurke/feature_list.rb, line 76
def filtered?(scenario)
  filtered_by_tags?(scenario) || filtered_by_line?(scenario)
end
filtered_by_line?(scenario) click to toggle source
# File lib/gurke/feature_list.rb, line 86
def filtered_by_line?(scenario)
  _, lines = files.select {|f, _| f == scenario.file }.first

  return false if lines.empty?

  lines.none? {|l| scenario.line <= l && scenario.steps.last.line >= l }
end
filtered_by_tags?(scenario) click to toggle source
# File lib/gurke/feature_list.rb, line 80
def filtered_by_tags?(scenario)
  !tag_filters.reduce(false) do |memo, set|
    memo || set.all? {|rule| rule.match? scenario }
  end
end
tag_filters() click to toggle source
# File lib/gurke/feature_list.rb, line 70
def tag_filters
  @tag_filters ||= options[:tags].map do |list|
    list.strip.split(/[,+\s]\s*/).map {|t| TagFilter.new(t) }
  end
end