Commit 1496bf9a authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Move enum processing out of Aggregator.

parent 742f5b0a
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
require 'jsduck/class'
require 'jsduck/accessors'
require 'jsduck/logger'
require 'jsduck/enum'
require 'jsduck/override'

module JsDuck
@@ -9,6 +8,9 @@ module JsDuck
  # Combines JavaScript Parser, DocParser and Merger.
  # Produces array of classes as result.
  class Aggregator
    # Access to internal classes hash.
    attr_reader :classes

    def initialize
      @documentation = []
      @classes = {}
@@ -222,11 +224,6 @@ module JsDuck
      end
    end

    # Loops through all enums and auto-detects their types if needed.
    def process_enums
      Enum.new(@classes).process_all!
    end

    # Processes all overrides.
    # Returns list of override classes.
    def process_overrides
+2 −1
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ require 'jsduck/util/parallel'
require 'jsduck/util/io'
require 'jsduck/source/file'
require 'jsduck/aggregator'
require 'jsduck/enum'
require 'jsduck/class'
require 'jsduck/relations'
require 'jsduck/logger'
@@ -62,7 +63,7 @@ module JsDuck
      if @opts.ext4_events == true || (@opts.ext4_events == nil && agr.ext4?)
        agr.append_ext4_event_options
      end
      agr.process_enums
      Enum.new(agr.classes).process_all!
      # Ignore override classes after applying them to actual classes
      @opts.external_classes += agr.process_overrides.map {|o| o[:name] }
      agr.result
+2 −1
Original line number Diff line number Diff line
require "jsduck/aggregator"
require "jsduck/source/file"
require "jsduck/enum"

describe JsDuck::Aggregator do
  def parse(string)
    agr = JsDuck::Aggregator.new
    agr.aggregate(JsDuck::Source::File.new(string))
    agr.process_enums
    JsDuck::Enum.new(agr.classes).process_all!
    agr.result
  end