class JsDuck::Tag::ClassListTag

Base class for tags like @mixins, @uses, etc Which take the following form:

@tagname classname1 classname2 ...

Subclasses need to define the @patterns and @tagname fields for the parse_doc and process_doc methods to work. Plus @ext_define_pattern and @ext_define_default for the parse_ext_define to work.

Public Instance Methods

classname_list(p) click to toggle source

matches <ident_chain> <ident_chain> … until line end

# File lib/jsduck/tag/class_list_tag.rb, line 24
def classname_list(p)
  classes = []
  while cls = p.hw.ident_chain
    classes << cls
  end
  classes
end
parse_doc(p, pos) click to toggle source
# File lib/jsduck/tag/class_list_tag.rb, line 16
def parse_doc(p, pos)
  {
    :tagname => @tagname,
    :classes => classname_list(p),
  }
end
parse_ext_define(cls, ast) click to toggle source
# File lib/jsduck/tag/class_list_tag.rb, line 36
def parse_ext_define(cls, ast)
  cls[@tagname] = JsDuck::Js::Utils.make_string_list(ast)
end
process_doc(h, tags, pos) click to toggle source
# File lib/jsduck/tag/class_list_tag.rb, line 32
def process_doc(h, tags, pos)
  h[@tagname] = tags.map {|d| d[:classes] }.flatten
end