Commit ee53f3fc authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Completely hide members tagged with @hide.

@hide is no more equivalent of @private.  Members tagged with @hide
won't appear in documentation at all.
parent a50c5b0b
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -168,6 +168,9 @@ module JsDuck
        ms.merge!(local_members_hash(type, :statics)) {|k,o,n| store_overrides(k,o,n)}
      end

      # Remove explicitly hidden members (tagged with @hide)
      ms.reject! {|k, v| v[:meta] && v[:meta][:hide] }

      ms
    end

+2 −2
Original line number Diff line number Diff line
@@ -27,8 +27,8 @@ module JsDuck
      cls[:doc] = @formatter.format(cls[:doc]) if cls[:doc]
      [:members, :statics].each do |group|
        cls[group].each_pair do |type, members|
          # format all members
          cls[group][type] = members.map {|m| format_member(m) }
          # format all members (except hidden ones)
          cls[group][type] = members.map {|m| m[:meta][:hide] ? m : format_member(m)  }
        end
      end
      cls[:html_meta] = format_meta_data(cls)
+2 −2
Original line number Diff line number Diff line
@@ -134,8 +134,8 @@ module JsDuck
          at_var
        elsif look(/@inheritable\b/)
          boolean_at_tag(/@inheritable/, :inheritable)
        elsif look(/@(private|ignore|hide)\b/)
          boolean_at_tag(/@(private|ignore|hide)/, :private)
        elsif look(/@(private|ignore)\b/)
          boolean_at_tag(/@(private|ignore)/, :private)
        elsif look(/@accessor\b/)
          boolean_at_tag(/@accessor/, :accessor)
        elsif look(/@evented\b/)

lib/jsduck/tag/hide.rb

0 → 100644
+18 −0
Original line number Diff line number Diff line
require "jsduck/meta_tag"

module JsDuck::Tag
  # Implementation of @hide tag.
  #
  # Hides a member in parent class.
  #
  # The core of the implementation is built into jsduck.
  #
  class Hide < JsDuck::MetaTag
    def initialize
      @name = "hide"
      @key = :hide
      @boolean = true
    end
  end
end
+14 −5
Original line number Diff line number Diff line
@@ -24,14 +24,23 @@ describe JsDuck::Aggregator do
    it_should_behave_like "private"
  end

  describe "@hide" do
    before { @tagname = "@hide" }
    it_should_behave_like "private"
  end

  describe "@ignore" do
    before { @tagname = "@ignore" }
    it_should_behave_like "private"
  end

  describe "@hide" do
    before do
      @doc = parse("/** @hide */")[0]
    end

    it "does not mark item as private" do
      @doc[:private].should_not == true
    end

    it "marks item as :hide" do
      @doc[:meta][:hide].should == true
    end
  end

end
Loading