Commit b1244d8a authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Merger and Aggregator take care of adding :member.

JsDuck::Class no more rewrites :member attribute of its members -
it doesn't even need to know that there is such attribute.
While JsDuck::Table can assume that each class member still has
the :member attribute set.
parent 60e3d408
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ module JsDuck
          add_orphan(node)
        end
      elsif @current_class
        node[:member] = @current_class[:name]
        @current_class[ node[:tagname] ] << node
      else
        add_orphan(node)
+0 −1
Original line number Diff line number Diff line
@@ -42,7 +42,6 @@ module JsDuck
    def members_hash(type)
      parent_members = parent ? parent.members_hash(type) : {}
      @doc[type].each do |m|
        m[:member] = full_name
        parent_members[m[:name]] = m if !m[:private]
      end
      parent_members
+6 −4
Original line number Diff line number Diff line
@@ -54,10 +54,12 @@ module JsDuck
    def create_class(docs, code)
      groups = group_class_docs(docs)
      result = create_bare_class(groups[:class], code)
      result[:cfg] = groups[:cfg].map { |tags| create_cfg(tags, {}) }
      result[:cfg] = groups[:cfg].map { |tags| create_cfg(tags, {}, result[:name]) }
      result[:method] = []
      if groups[:constructor].length > 0
        result[:method] << create_method(groups[:constructor], {})
        constr = create_method(groups[:constructor], {})
        constr[:member] = result[:name]
        result[:method] << constr
      end
      result[:property] = []
      result[:event] = []
@@ -135,12 +137,12 @@ module JsDuck
      }
    end

    def create_cfg(docs, code)
    def create_cfg(docs, code, member = nil)
      doc_map = build_doc_map(docs)
      return {
        :tagname => :cfg,
        :name => detect_name(:cfg, doc_map, code),
        :member => detect_member(doc_map),
        :member => detect_member(doc_map) || member,
        :type => detect_type(:cfg, doc_map, code),
        :doc => detect_doc(docs),
        :private => !!doc_map[:private],
+6 −6
Original line number Diff line number Diff line
@@ -9,9 +9,9 @@ describe JsDuck::Class do
      @parent = JsDuck::Class.new({
          :name => "ParentClass",
          :method => [
            {:name => "baz"},
            {:name => "foo"},
            {:name => "frank", :private => true},
            {:name => "baz", :member => "ParentClass"},
            {:name => "foo", :member => "ParentClass"},
            {:name => "frank", :member => "ParentClass", :private => true},
          ]
        }, @classes);
      @classes["ParentClass"] = @parent
@@ -19,9 +19,9 @@ describe JsDuck::Class do
          :name => "ChildClass",
          :extends => "ParentClass",
          :method => [
            {:name => "foo"},
            {:name => "bar"},
            {:name => "zappa", :private => true},
            {:name => "foo", :member => "ChildClass"},
            {:name => "bar", :member => "ChildClass"},
            {:name => "zappa", :member => "ChildClass", :private => true},
          ]
        }, @classes);
      @classes["ChildClass"] = @child