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