def visit_feature_element(uri, feature_element, feature_tags, line_numbers: [])
scenario_tags = feature_element.tags.map(&:name)
scenario_tags = feature_tags + scenario_tags
if feature_element.is_a?(CukeModeler::Scenario)
test_line = feature_element.source_line
return unless matches_tags?(scenario_tags)
return if line_numbers.any? && !line_numbers.include?(test_line)
@scenarios << [uri, feature_element.source_line].join(":")
else
feature_element.examples.each do |example|
example_tags = example.tags.map(&:name)
example_tags = scenario_tags + example_tags
next unless matches_tags?(example_tags)
example.rows[1..].each do |row|
test_line = row.source_line
next if line_numbers.any? && !line_numbers.include?(test_line)
@scenarios << [uri, test_line].join(':')
end
end
end
end