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

Version Path
solvas-jsduck-6.0.0.30539 lib/jsduck/tag/class_list_tag.rb
solvas-jsduck-6.0.0.9571 lib/jsduck/tag/class_list_tag.rb
solvas-jsduck-6.0.0.6154 lib/jsduck/tag/class_list_tag.rb
solvas-jsduck-6.0.0.4021 lib/jsduck/tag/class_list_tag.rb
solvas-jsduck-6.0.0.2554 lib/jsduck/tag/class_list_tag.rb
solvas-jsduck-6.0.0.1891 lib/jsduck/tag/class_list_tag.rb
solvas-jsduck-6.0.0.beta.1888 lib/jsduck/tag/class_list_tag.rb
jsduck-troopjs-0.0.10 lib/jsduck/tag/class_list_tag.rb
jsduck-troopjs-0.0.9 lib/jsduck/tag/class_list_tag.rb
jsduck-troopjs-0.0.8 lib/jsduck/tag/class_list_tag.rb
jsduck-troopjs-0.0.7 lib/jsduck/tag/class_list_tag.rb
jsduck-troopjs-0.0.5 lib/jsduck/tag/class_list_tag.rb
jsduck-troopjs-0.0.4 lib/jsduck/tag/class_list_tag.rb
jsduck-troopjs-0.0.3 lib/jsduck/tag/class_list_tag.rb
jsduck-troopjs-0.0.1 lib/jsduck/tag/class_list_tag.rb
jsduck-6.0.0beta lib/jsduck/tag/class_list_tag.rb
jsduck-5.3.4 lib/jsduck/tag/class_list_tag.rb
jsduck-5.3.3 lib/jsduck/tag/class_list_tag.rb
jsduck-5.3.2 lib/jsduck/tag/class_list_tag.rb
jsduck-5.3.1 lib/jsduck/tag/class_list_tag.rb