Loading lib/jsduck/js_parser.rb +9 −1 Original line number Diff line number Diff line Loading @@ -220,7 +220,7 @@ module JsDuck cfg end # <ext-define-cfg> := "{" ( <extend> | <mixins> | <alternate-class-name> | <alias> | <singleton> | <?> )* # <ext-define-cfg> := "{" ( <extend> | <mixins> | <alternate-class-name> | <alias> | <requires> | <uses> | <singleton> | <?> )* def ext_define_cfg match("{") cfg = {} Loading @@ -239,6 +239,14 @@ module JsDuck elsif look("alias", ":") cfg[:alias] = ext_define_alias found = true elsif look("requires", ":") match("requires", ":") cfg[:requires] = string_or_list found = true elsif look("uses", ":") match("uses", ":") cfg[:uses] = string_or_list found = true elsif look("singleton", ":", "true") cfg[:singleton] = ext_define_singleton found = true Loading lib/jsduck/merger.rb +2 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,8 @@ module JsDuck :author => detect_author(doc_map), :docauthor => detect_docauthor(doc_map), :singleton => detect_singleton(doc_map, code), :requires => detect_list(:requires, doc_map, code), :uses => detect_list(:uses, doc_map, code), # Used by Aggregator to determine if we're dealing with Ext4 code :code_type => code[:type], }, doc_map) Loading spec/aggregator_classes_spec.rb +13 −2 Original line number Diff line number Diff line Loading @@ -201,6 +201,12 @@ describe JsDuck::Aggregator do it "detects implied singleton" do @doc[:singleton].should == true end it "detects required classes" do @doc[:requires].should == ["ClassA", "ClassB"] end it "detects used classes" do @doc[:uses].should == ["ClassC"] end end describe "basic Ext.define() in code" do Loading @@ -215,7 +221,9 @@ describe JsDuck::Aggregator do }, alias: 'widget.foo', alternateClassName: 'JustClass', singleton: true singleton: true, requires: ['ClassA', 'ClassB'], uses: 'ClassC' }); EOS end Loading @@ -240,10 +248,13 @@ describe JsDuck::Aggregator do Ext.define('MyClass', { blah: true, extend: 'Your.Class', uses: ['ClassC'], conf: {foo: 10}, alias: ['widget.foo', 'something.bar'], singleton: true, alternateClassName: ['JustClass'], requires: ['Hohooo', 'hahaa'], stuff: ["foo", "bar"], requires: ['ClassA', 'ClassB'], mixins: { obs: 'Ext.util.Observable', bar: 'Foo.Bar' Loading Loading
lib/jsduck/js_parser.rb +9 −1 Original line number Diff line number Diff line Loading @@ -220,7 +220,7 @@ module JsDuck cfg end # <ext-define-cfg> := "{" ( <extend> | <mixins> | <alternate-class-name> | <alias> | <singleton> | <?> )* # <ext-define-cfg> := "{" ( <extend> | <mixins> | <alternate-class-name> | <alias> | <requires> | <uses> | <singleton> | <?> )* def ext_define_cfg match("{") cfg = {} Loading @@ -239,6 +239,14 @@ module JsDuck elsif look("alias", ":") cfg[:alias] = ext_define_alias found = true elsif look("requires", ":") match("requires", ":") cfg[:requires] = string_or_list found = true elsif look("uses", ":") match("uses", ":") cfg[:uses] = string_or_list found = true elsif look("singleton", ":", "true") cfg[:singleton] = ext_define_singleton found = true Loading
lib/jsduck/merger.rb +2 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,8 @@ module JsDuck :author => detect_author(doc_map), :docauthor => detect_docauthor(doc_map), :singleton => detect_singleton(doc_map, code), :requires => detect_list(:requires, doc_map, code), :uses => detect_list(:uses, doc_map, code), # Used by Aggregator to determine if we're dealing with Ext4 code :code_type => code[:type], }, doc_map) Loading
spec/aggregator_classes_spec.rb +13 −2 Original line number Diff line number Diff line Loading @@ -201,6 +201,12 @@ describe JsDuck::Aggregator do it "detects implied singleton" do @doc[:singleton].should == true end it "detects required classes" do @doc[:requires].should == ["ClassA", "ClassB"] end it "detects used classes" do @doc[:uses].should == ["ClassC"] end end describe "basic Ext.define() in code" do Loading @@ -215,7 +221,9 @@ describe JsDuck::Aggregator do }, alias: 'widget.foo', alternateClassName: 'JustClass', singleton: true singleton: true, requires: ['ClassA', 'ClassB'], uses: 'ClassC' }); EOS end Loading @@ -240,10 +248,13 @@ describe JsDuck::Aggregator do Ext.define('MyClass', { blah: true, extend: 'Your.Class', uses: ['ClassC'], conf: {foo: 10}, alias: ['widget.foo', 'something.bar'], singleton: true, alternateClassName: ['JustClass'], requires: ['Hohooo', 'hahaa'], stuff: ["foo", "bar"], requires: ['ClassA', 'ClassB'], mixins: { obs: 'Ext.util.Observable', bar: 'Foo.Bar' Loading