Sha256: e07eeada5f5bad15e17c8fde95bed1b730f8eb54535a32102e98f13cb3888f9a
Contents?: true
Size: 981 Bytes
Versions: 29
Compression:
Stored size: 981 Bytes
Contents
require "jsduck/tag/tag" require "jsduck/js/utils" module JsDuck::Tag # 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. # class ClassListTag < Tag def parse_doc(p, pos) { :tagname => @tagname, :classes => classname_list(p), } end # matches <ident_chain> <ident_chain> ... until line end def classname_list(p) classes = [] while cls = p.hw.ident_chain classes << cls end classes end def process_doc(h, tags, pos) h[@tagname] = tags.map {|d| d[:classes] }.flatten end def parse_ext_define(cls, ast) cls[@tagname] = JsDuck::Js::Utils.make_string_list(ast) end end end
Version data entries
29 entries across 29 versions & 3 rubygems