Loading lib/jsduck/doc_parser.rb +14 −11 Original line number Diff line number Diff line Loading @@ -325,8 +325,11 @@ module JsDuck add_tag(:inheritdoc) skip_horiz_white if look(@ident_chain_pattern) @current_tag[:cls] = ident_chain end if look(/#\w/) @input.scan(/#/) if look(/static-/) Loading @@ -339,7 +342,7 @@ module JsDuck end @current_tag[:member] = ident end end skip_white end Loading lib/jsduck/inherit_doc.rb +7 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,13 @@ module JsDuck warn("@inheritdoc #{inherit[:cls]}##{inherit[:member]} - member not found", context) return m end elsif inherit[:member] cls = @relations[m[:owner]] parent = cls.get_members(inherit[:member], inherit[:type] || m[:tagname], inherit[:static] || m[:meta][:static])[0] unless parent warn("@inheritdoc ##{inherit[:member]} - member not found", context) return m end else parent_cls = @relations[m[:owner]].parent mixins = @relations[m[:owner]].mixins Loading spec/aggregator_inheritdoc_spec.rb +24 −0 Original line number Diff line number Diff line Loading @@ -344,6 +344,30 @@ describe JsDuck::Aggregator do end end describe "@inheritdoc with member name parameter" do before do @docs = parse(<<-EOF) /** * @class Child */ /** * @method bar * Original comment. */ /** * @method foobar * @inheritdoc #bar * New comment. */ EOF @inheritdoc = @docs["Child"][:members][:method][1] end it "merges comment from referenced member" do @inheritdoc[:doc].should == "New comment.\n\nOriginal comment." end end describe "@inheritdoc without parameter" do before do @docs = parse(<<-EOF) Loading Loading
lib/jsduck/doc_parser.rb +14 −11 Original line number Diff line number Diff line Loading @@ -325,8 +325,11 @@ module JsDuck add_tag(:inheritdoc) skip_horiz_white if look(@ident_chain_pattern) @current_tag[:cls] = ident_chain end if look(/#\w/) @input.scan(/#/) if look(/static-/) Loading @@ -339,7 +342,7 @@ module JsDuck end @current_tag[:member] = ident end end skip_white end Loading
lib/jsduck/inherit_doc.rb +7 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,13 @@ module JsDuck warn("@inheritdoc #{inherit[:cls]}##{inherit[:member]} - member not found", context) return m end elsif inherit[:member] cls = @relations[m[:owner]] parent = cls.get_members(inherit[:member], inherit[:type] || m[:tagname], inherit[:static] || m[:meta][:static])[0] unless parent warn("@inheritdoc ##{inherit[:member]} - member not found", context) return m end else parent_cls = @relations[m[:owner]].parent mixins = @relations[m[:owner]].mixins Loading
spec/aggregator_inheritdoc_spec.rb +24 −0 Original line number Diff line number Diff line Loading @@ -344,6 +344,30 @@ describe JsDuck::Aggregator do end end describe "@inheritdoc with member name parameter" do before do @docs = parse(<<-EOF) /** * @class Child */ /** * @method bar * Original comment. */ /** * @method foobar * @inheritdoc #bar * New comment. */ EOF @inheritdoc = @docs["Child"][:members][:method][1] end it "merges comment from referenced member" do @inheritdoc[:doc].should == "New comment.\n\nOriginal comment." end end describe "@inheritdoc without parameter" do before do @docs = parse(<<-EOF) Loading