Commit 94fd99fa authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Use singular forms for members in exported JSON.

Before we had: "cfgs", "properties", "methods", ...
Now we have: "cfg", "property", "method", ...

Although naming array of events to just "event" looks at first
glance somewhat wrong, it makes looping over all the members
much-much easier.
parent 8d9164dd
Loading
Loading
Loading
Loading
+7 −11
Original line number Diff line number Diff line
@@ -17,17 +17,13 @@ module JsDuck
    # Returns all data in Class object as hash.
    def export(cls)
      h = cls.to_hash
      h[:cfgs] = cls.members(:cfg)
      h.delete(:cfg)
      h[:properties] = cls.members(:property)
      h.delete(:property)
      h[:methods] = cls.members(:method)
      h.delete(:method)
      h[:events] = cls.members(:event)
      h.delete(:event)
      h[:cssVars] = cls.members(:css_var)
      h[:cfg] = cls.members(:cfg)
      h[:property] = cls.members(:property)
      h[:method] = cls.members(:method)
      h[:event] = cls.members(:event)
      h[:cssVar] = cls.members(:css_var)
      h.delete(:css_var)
      h[:cssMixins] = cls.members(:css_mixin)
      h[:cssMixin] = cls.members(:css_mixin)
      h.delete(:css_mixin)
      h[:component] = cls.inherits_from?("Ext.Component")
      h[:superclasses] = cls.superclasses.collect {|c| c.full_name }
@@ -41,7 +37,7 @@ module JsDuck
    def format_class(c)
      @formatter.context = c[:name]
      c[:doc] = @formatter.format(c[:doc]) if c[:doc]
      [:cfgs, :properties, :methods, :events, :cssVars, :cssMixins].each do |type|
      [:cfg, :property, :method, :event, :cssVar, :cssMixin].each do |type|
        c[type] = c[type].map {|m| format_member(m) }
      end
      c
+17 −32
Original line number Diff line number Diff line
@@ -11,38 +11,23 @@ Ext.define('Docs.OverviewToolbar', {
    initComponent: function() {
        this.items = [];

        if (clsInfo.cfgs.length) {
            this.items.push(this.createMemberButton({
                items: clsInfo.cfgs,
                type: "config",
                cls: "configs",
                title: "Configs"
            }));
        }
        if (clsInfo.properties.length) {
            this.items.push(this.createMemberButton({
                items: clsInfo.properties,
                type: "property",
                cls: "properties",
                title: "Properties"
            }));
        }
        if (clsInfo.methods.length) {
        var memberTitles = {
            cfg: "Configs",
            property: "Properties",
            method: "Methods",
            event: "Events"
        };
        for (var type in memberTitles) {
            var members = clsInfo[type];
            if (members.length) {
                this.items.push(this.createMemberButton({
                items: clsInfo.methods,
                type: "method",
                cls: "methods",
                title: "Methods"
                    items: members,
                    type: type,
                    title: memberTitles[type]
                }));
            }
        if (clsInfo.events.length) {
            this.items.push(this.createMemberButton({
                items: clsInfo.events,
                type: "event",
                cls: "events",
                title: "Events"
            }));
        }

        if (clsInfo.subclasses.length) {
            this.items.push(this.createSubClassesButton({
                items: clsInfo.subclasses,
@@ -100,7 +85,7 @@ Ext.define('Docs.OverviewToolbar', {
        });

        return Ext.create('Ext.button.Split', {
            cls: cfg.cls,
            cls: cfg.type,
            iconCls: 'icon-' + cfg.type,
            text: cfg.title + ' <span class="num">' + cfg.items.length + '</span>',
            listeners: {
+3 −3
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@ pre,code,kbd,samp,tt{font-family:"Menlo","Courier New",Courier,monospace}
#search .item{display:block;cursor:pointer;overflow:hidden;padding:5px 5px 5px 30px;border-width:0 0 1px 0;border-style:solid;border-color:#bebdbf;}
#search .item .title{color:#605f5f;font-weight:bold;overflow:hidden;text-overflow:ellipsis}
#search .item .class{color:#605f5f;font-size:.85em;overflow:hidden;text-overflow:ellipsis}
#search .item.config{background:url("img/configs.png") no-repeat 0 3px}
#search .item.cfg{background:url("img/configs.png") no-repeat 0 3px}
#search .item.property{background:url("img/properties.png") no-repeat 3px 8px}
#search .item.method{background:url("img/methods.png") no-repeat 3px 5px}
#search .item.event{background:url("img/events.png") no-repeat 4px 0}
@@ -206,7 +206,7 @@ pre,code,kbd,samp,tt{font-family:"Menlo","Courier New",Courier,monospace}
#treePanel .x-grid-cell-inner .icon-event{background:url("img/icons.png") no-repeat -3px -245px !important}
#treePanel .x-grid-cell-inner .icon-property{background:url("img/icons.png") no-repeat -3px -192px !important}
#treePanel .x-grid-cell-inner .icon-method{background:url("img/icons.png") no-repeat -3px -165px !important}
#treePanel .x-grid-cell-inner .icon-config{background:url("img/icons.png") no-repeat -3px -219px !important}
#treePanel .x-grid-cell-inner .icon-cfg{background:url("img/icons.png") no-repeat -3px -219px !important}
#treePanel .x-grid-cell-inner .icon-subclass{background:url("img/icons.png") no-repeat -3px -299px !important}
#treePanel .x-grid-cell-inner .icon-fav{background:url("img/favorite2.png") no-repeat 0 -2px;padding-left:20px}
#treePanel .x-grid-cell-inner .icon-hist{background:url("img/favorite2.png") no-repeat 0 -40px;padding-left:20px}
@@ -242,7 +242,7 @@ pre,code,kbd,samp,tt{font-family:"Menlo","Courier New",Courier,monospace}
.icon-event{background:url("img/icons.png") no-repeat -3px -245px !important}
.icon-property{background:url("img/icons.png") no-repeat -3px -192px !important}
.icon-method{background:url("img/icons.png") no-repeat -3px -165px !important}
.icon-config{background:url("img/icons.png") no-repeat -3px -219px !important}
.icon-cfg{background:url("img/icons.png") no-repeat -3px -219px !important}
.icon-subclass{background:url("img/icons.png") no-repeat -3px -299px !important}
.icon-fav{background:url("img/favorite2.png") no-repeat 0 -2px;padding-left:20px}
.icon-hist{background:url("img/favorite2.png") no-repeat 0 -40px;padding-left:20px}