diff --git a/lib/jsduck/override.rb b/lib/jsduck/override.rb index 385e053dc45c7606aa30742cceb8f05f488e75cb..18e67330b38eff6f0615e2ac9635cd347c7e99a8 100644 --- a/lib/jsduck/override.rb +++ b/lib/jsduck/override.rb @@ -60,6 +60,7 @@ module JsDuck else add_member(target, m) add_doc(m, "**Defined in override #{override[:name]}.**") + m[:owner] = target[:name] end end end diff --git a/spec/aggregator_overrides_spec.rb b/spec/aggregator_overrides_spec.rb index a143a420d20c80e8227713f29a253bd9674c9af7..39c48a73d275beaf515b23a225ef544a4b4c4f48 100644 --- a/spec/aggregator_overrides_spec.rb +++ b/spec/aggregator_overrides_spec.rb @@ -148,6 +148,10 @@ describe JsDuck::Aggregator do methods["bar"][:doc].should == "Bar comment.\n\n**Defined in override FooOverride.**" end + it "changes owner of bar method to target class" do + methods["bar"][:owner].should == "Foo" + end + it "keeps the foobar method that's in both original and override" do methods["foobar"].should_not == nil end @@ -159,6 +163,10 @@ describe JsDuck::Aggregator do it "adds override source to list of files to overridden member" do methods["foobar"][:files].length.should == 2 end + + it "keeps owner of foobar method to be the original class" do + methods["foobar"][:owner].should == "Foo" + end end describe "comment-less @override for a class" do