class Cucumber::Ast::Tags::And

:nodoc:
:nodoc:
This gets stored internally as ["invoice", "release_2"]
@invoice @release_2
Holds the names of tags parsed from a feature file:

def excluded?(tag_names)

def excluded?(tag_names)
  (@negative_tags & tag_names).any?
end

def included?(tag_names)

def included?(tag_names)
  positive_tag_set = Set.new(@positive_tags)
  tag_names_set = Set.new(tag_names)
  positive_tag_set.subset?(tag_names_set)
end

def initialize(tag_names)

:nodoc:
:nodoc:

This gets stored internally as ["invoice", "release_2"]

@invoice @release_2

Holds the names of tags parsed from a feature file:
def initialize(tag_names)
  if String === tag_names # They still come in as single strings on cuke4duke some times. Not sure why...
    raise "Commas in tags??? #{tag_names.inspect}" if tag_names =~ /,/ # just in case...
    tag_names = [tag_names] 
  end
  @negative_tags, @positive_tags = tag_names.partition{|tag_name| Tags.exclude_tag?(tag_name)}
  @negative_tags = Tags.strip_negative_char(@negative_tags)
end

def matches?(tag_names)

def matches?(tag_names)
  included?(tag_names) && !excluded?(tag_names)
end