Sha256: 31fbbd0060ddcc26d6600f67677e1218e28d6ef33ecccafb61357774d5c67592

Contents?: true

Size: 1.09 KB

Versions: 16

Compression:

Stored size: 1.09 KB

Contents

require "jsduck/tag/tag"
require "jsduck/member_registry"

module JsDuck::Tag
  class Inheritdoc < Tag
    def initialize
      @pattern = ["inheritdoc", "inheritDoc"]
      @tagname = :inheritdoc
    end

    # @inheritdoc class.name#static-type-member
    def parse_doc(p, pos)
      parse_as_inheritdoc(p)
    end

    # This separate method exits to allow it to be also called from
    # @alias tag implementation.
    #
    # Matches a member reference: <class.name> "#" <static> "-" <type> "-" <member>
    #
    # Returns :inheritdoc tag definition with corresponding fields.
    def parse_as_inheritdoc(p)
      tag = {
        :tagname => :inheritdoc,
        :cls => p.ident_chain,
      }

      if p.look(/#\w/)
        p.match(/#/)
        if p.look(/static-/)
          tag[:static] = true
          p.match(/static-/)
        end
        if p.look(JsDuck::MemberRegistry.regex)
          tag[:type] = p.match(/\w+/).to_sym
          p.match(/-/)
        end
        tag[:member] = p.ident
      end

      tag
    end

    def process_doc(h, docs, pos)
      h[:inheritdoc] = docs.first
    end
  end
end

Version data entries

16 entries across 16 versions & 3 rubygems

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