Commit 6800acde authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Extract BooleanTag base class.

Use it as a base for @hide and @inheritable.
parent 50ed5844
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
require "jsduck/builtins/tag"

module JsDuck::Builtins
  # Base class for simple boolean @tags.
  # Subclasses should only define @key and call #super,
  # which will take care of setting up @pattern with the same name.
  class BooleanTag < Tag
    def initialize
      @pattern = @key.to_s
    end

    # Parses just the name of the tag.
    def parse(p)
      p.add_tag(@key)
    end

    # When the tag is found, its value will always be true.
    def process_doc(docs)
      true
    end
  end
end
+3 −12
Original line number Diff line number Diff line
require "jsduck/builtins/tag"
require "jsduck/builtins/boolean_tag"

module JsDuck::Builtins
  # Hides a member in parent class.
  class Hide < Tag
  class Hide < BooleanTag
    def initialize
      @pattern = "hide"
      @key = :hide
    end

    # @hide
    def parse(p)
      p.add_tag(:hide)
    end

    def process_doc(docs)
      true
      super
    end
  end
end
+3 −12
Original line number Diff line number Diff line
require "jsduck/builtins/tag"
require "jsduck/builtins/boolean_tag"

module JsDuck::Builtins
  class Inheritable < Tag
  class Inheritable < BooleanTag
    def initialize
      @pattern = "inheritable"
      @key = :inheritable
    end

    # @inheritable
    def parse(p)
      p.add_tag(:inheritable)
    end

    def process_doc(docs)
      true
      super
    end
  end
end