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

Generate accessors for private configs.

This way the private accessors will be able to hide public accessors
in parent.
parent 0f860379
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ module JsDuck
    # not added.
    def create(cls)
      # Grab all configs tagged as @accessor
      accessors = cls[:members][:cfg].find_all {|cfg| cfg[:accessor] && !cfg[:private] }
      accessors = cls[:members][:cfg].find_all {|cfg| cfg[:accessor] }

      # Build lookup tables of method and event names
      methods = build_lookup_table(cls[:members][:method])
@@ -57,6 +57,7 @@ module JsDuck
        :owner => cfg[:owner],
        :files => cfg[:files],
        :id => "method-" + name,
        :private => cfg[:private],
        :meta => clone_meta(cfg),
      }
    end
@@ -79,6 +80,7 @@ module JsDuck
        :owner => cfg[:owner],
        :files => cfg[:files],
        :id => "method-" + name,
        :private => cfg[:private],
        :meta => clone_meta(cfg),
      }
    end
@@ -115,6 +117,7 @@ module JsDuck
        :owner => cfg[:owner],
        :files => cfg[:files],
        :id => "event-" + name,
        :private => cfg[:private],
        :meta => clone_meta(cfg),
      }
    end
+16 −2
Original line number Diff line number Diff line
@@ -127,12 +127,26 @@ describe JsDuck::Aggregator do
           * @cfg {String} foo
           * @private
           * @accessor
           * @evented
           */
      EOF
      @accessors = @docs[0][:members][:method]
    end

    it "creates accessors" do
      @accessors.length.should == 2
    end

    it "creates private getter" do
      @accessors[0][:private].should == true
    end

    it "creates private setter" do
      @accessors[1][:private].should == true
    end

    it "doesn't create any accessors" do
      @docs[0][:members][:method].length.should == 0
    it "creates private event" do
      @docs[0][:members][:event][0][:private].should == true
    end
  end