Loading lib/jsduck/doc_parser.rb +22 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,10 @@ module JsDuck at_mixins elsif look(/@alternateClassNames?\b/) at_alternateClassName elsif look(/@uses\b/) at_uses elsif look(/@requires\b/) at_requires elsif look(/@singleton\b/) boolean_at_tag(/@singleton/, :singleton) elsif look(/@event\b/) Loading Loading @@ -220,6 +224,24 @@ module JsDuck skip_white end # matches @uses name1 name2 ... def at_uses match(/@uses/) add_tag(:uses) skip_horiz_white @current_tag[:uses] = class_list skip_white end # matches @requires name1 name2 ... def at_requires match(/@requires/) add_tag(:requires) skip_horiz_white @current_tag[:requires] = class_list skip_white end # matches @event name ... def at_event match(/@event/) Loading spec/aggregator_classes_spec.rb +27 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,33 @@ describe JsDuck::Aggregator do it_should_behave_like "Ext.define" end describe "explicit @tags overriding Ext.define()" do before do @doc = parse(<<-EOS)[0] /** * @class MyClass * @extends Your.Class * @uses ClassC * @requires ClassA * @requires ClassB * @alternateClassName JustClass * @mixins Ext.util.Observable * @mixins Foo.Bar * @singleton */ Ext.define('MyClassXXX', { extend: 'Your.ClassXXX', uses: ['CCC'], singleton: false, alternateClassName: ['JustClassXXX'], requires: ['AAA'], mixins: ['BBB'] }); EOS end it_should_behave_like "Ext.define" end describe "Ext.define() without extend" do before do @doc = parse(<<-EOS)[0] Loading Loading
lib/jsduck/doc_parser.rb +22 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,10 @@ module JsDuck at_mixins elsif look(/@alternateClassNames?\b/) at_alternateClassName elsif look(/@uses\b/) at_uses elsif look(/@requires\b/) at_requires elsif look(/@singleton\b/) boolean_at_tag(/@singleton/, :singleton) elsif look(/@event\b/) Loading Loading @@ -220,6 +224,24 @@ module JsDuck skip_white end # matches @uses name1 name2 ... def at_uses match(/@uses/) add_tag(:uses) skip_horiz_white @current_tag[:uses] = class_list skip_white end # matches @requires name1 name2 ... def at_requires match(/@requires/) add_tag(:requires) skip_horiz_white @current_tag[:requires] = class_list skip_white end # matches @event name ... def at_event match(/@event/) Loading
spec/aggregator_classes_spec.rb +27 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,33 @@ describe JsDuck::Aggregator do it_should_behave_like "Ext.define" end describe "explicit @tags overriding Ext.define()" do before do @doc = parse(<<-EOS)[0] /** * @class MyClass * @extends Your.Class * @uses ClassC * @requires ClassA * @requires ClassB * @alternateClassName JustClass * @mixins Ext.util.Observable * @mixins Foo.Bar * @singleton */ Ext.define('MyClassXXX', { extend: 'Your.ClassXXX', uses: ['CCC'], singleton: false, alternateClassName: ['JustClassXXX'], requires: ['AAA'], mixins: ['BBB'] }); EOS end it_should_behave_like "Ext.define" end describe "Ext.define() without extend" do before do @doc = parse(<<-EOS)[0] Loading