Commit 9710d5bc authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Remove extra data from generated JSON.

Again makes things quite a bit faster as we don't write as big files.
parent c6a630b0
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -180,10 +180,11 @@ module JsDuck
        filename = @opts.output_dir+"/output/" + cls[:name] + (@opts.export ? ".json" : ".js")
        Logger.instance.log("Writing to #{filename} ...")
        data = exporter.export(cls)
        data[:html] = renderer.render(data)
        if @opts.export
          JsonDuck.write_json(filename, data)
        else
          data[:html] = renderer.render(data)
          data = exporter.compact(data)
          JsonDuck.write_jsonp(filename, cls[:name].gsub(/\./, "_"), data)
        end
      end
+23 −0
Original line number Diff line number Diff line
@@ -24,6 +24,29 @@ module JsDuck
      h
    end

    # removes extra data from export
    def compact(cls)
      cls.delete(:doc)
      cls[:members] = compact_members_group(cls[:members])
      cls[:statics] = compact_members_group(cls[:statics])
      cls
    end

    def compact_members_group(group)
      c_group = {}
      group.each_pair do |type, members|
        c_group[type] = members.map {|m| compact_member(m) }
      end
      c_group
    end

    def compact_member(m)
      m_copy = {}
      [:name, :tagname, :owner, :protected, :static, :deprecated, :required].each do |key|
        m_copy[key] = m[key]
      end
      m_copy
    end
  end

end