Sha256: b1887d1b6c58e4e7bd8eea4f28e2cb3ccb20535d268d522c56ace6fb0f7a4d3d

Contents?: true

Size: 894 Bytes

Versions: 1

Compression:

Stored size: 894 Bytes

Contents

require "jsduck/tag/tag"
require "jsduck/js/utils"

module JsDuck::Tag
  class Override < Tag
    def initialize
      @pattern = "override"
      @tagname = :override
      @ext_define_pattern = "override"
    end

    # @override nameOfOverride
    def parse_doc(p)
      if classname = p.ident_chain
        {
          :tagname => :override,
          :override => classname,
        }
      else
        # When @override not followed by class name, ignore the tag.
        # That's because the current ext codebase has some methods
        # tagged with @override to denote they override something.
        # But that's not what @override is meant for in JSDuck.
        nil
      end
    end

    def process_doc(h, tags, pos)
      h[:override] = tags[0][:override]
    end

    def parse_ext_define(cls, ast)
      cls[:override] = JsDuck::Js::Utils.make_string(ast)
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jsduck-5.0.0.beta01 lib/jsduck/tag/override.rb