Loading lib/jsduck/aggregator.rb +1 −12 Original line number Diff line number Diff line require 'jsduck/class' require 'jsduck/logger' require 'jsduck/override' module JsDuck Loading Loading @@ -200,17 +199,7 @@ module JsDuck end end # Processes all overrides. # Returns list of override classes. def process_overrides Override.new(@classes).process_all!.map do |cls| # discard each override class @classes.delete(cls[:name]) @documentation.delete(cls) cls end end # Now used only in tests. def result @documentation + @orphans end Loading lib/jsduck/batch_parser.rb +9 −5 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ require 'jsduck/aggregator' require 'jsduck/enum' require 'jsduck/accessors' require 'jsduck/ext4_events' require 'jsduck/override' require 'jsduck/class' require 'jsduck/relations' require 'jsduck/logger' Loading Loading @@ -61,12 +62,15 @@ module JsDuck agr.classify_orphans agr.create_global_class agr.remove_ignored_classes Accessors.new(agr.classes).create_all! Ext4Events.new(agr.classes, @opts).process_all! Enum.new(agr.classes).process_all! classes = agr.classes Accessors.new(classes).create_all! Ext4Events.new(classes, @opts).process_all! Enum.new(classes).process_all! # Ignore override classes after applying them to actual classes @opts.external_classes += agr.process_overrides.map {|o| o[:name] } agr.result @opts.external_classes += Override.new(classes).process_all! classes.values end # Turns all aggregated data into Class objects. Loading lib/jsduck/override.rb +11 −3 Original line number Diff line number Diff line require 'jsduck/logger' module JsDuck class Override Loading @@ -5,8 +7,9 @@ module JsDuck @classes_hash = classes_hash end # Applies all override classes to target classes # Returns all the processed override classes. # Applies all override classes to target classes, then deletes the # overrides themselves from classes hash. Returns names of all # the processed override classes. def process_all! overrides = [] Loading @@ -17,7 +20,12 @@ module JsDuck end end overrides # discard each override class overrides.each do |cls| @classes_hash.delete(cls[:name]) end overrides.map {|c| c[:name] } end private Loading spec/aggregator_overrides_spec.rb +4 −2 Original line number Diff line number Diff line Loading @@ -2,13 +2,15 @@ require "jsduck/aggregator" require "jsduck/source/file" require "jsduck/class" require "jsduck/relations" require "jsduck/override" describe JsDuck::Aggregator do def parse(string) agr = JsDuck::Aggregator.new agr.aggregate(JsDuck::Source::File.new(string, "blah.js")) agr.process_overrides JsDuck::Relations.new(agr.result.map {|cls| JsDuck::Class.new(cls) }) classes = agr.classes JsDuck::Override.new(classes).process_all! JsDuck::Relations.new(classes.values.map {|cls| JsDuck::Class.new(cls) }) end shared_examples_for "override" do Loading Loading
lib/jsduck/aggregator.rb +1 −12 Original line number Diff line number Diff line require 'jsduck/class' require 'jsduck/logger' require 'jsduck/override' module JsDuck Loading Loading @@ -200,17 +199,7 @@ module JsDuck end end # Processes all overrides. # Returns list of override classes. def process_overrides Override.new(@classes).process_all!.map do |cls| # discard each override class @classes.delete(cls[:name]) @documentation.delete(cls) cls end end # Now used only in tests. def result @documentation + @orphans end Loading
lib/jsduck/batch_parser.rb +9 −5 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ require 'jsduck/aggregator' require 'jsduck/enum' require 'jsduck/accessors' require 'jsduck/ext4_events' require 'jsduck/override' require 'jsduck/class' require 'jsduck/relations' require 'jsduck/logger' Loading Loading @@ -61,12 +62,15 @@ module JsDuck agr.classify_orphans agr.create_global_class agr.remove_ignored_classes Accessors.new(agr.classes).create_all! Ext4Events.new(agr.classes, @opts).process_all! Enum.new(agr.classes).process_all! classes = agr.classes Accessors.new(classes).create_all! Ext4Events.new(classes, @opts).process_all! Enum.new(classes).process_all! # Ignore override classes after applying them to actual classes @opts.external_classes += agr.process_overrides.map {|o| o[:name] } agr.result @opts.external_classes += Override.new(classes).process_all! classes.values end # Turns all aggregated data into Class objects. Loading
lib/jsduck/override.rb +11 −3 Original line number Diff line number Diff line require 'jsduck/logger' module JsDuck class Override Loading @@ -5,8 +7,9 @@ module JsDuck @classes_hash = classes_hash end # Applies all override classes to target classes # Returns all the processed override classes. # Applies all override classes to target classes, then deletes the # overrides themselves from classes hash. Returns names of all # the processed override classes. def process_all! overrides = [] Loading @@ -17,7 +20,12 @@ module JsDuck end end overrides # discard each override class overrides.each do |cls| @classes_hash.delete(cls[:name]) end overrides.map {|c| c[:name] } end private Loading
spec/aggregator_overrides_spec.rb +4 −2 Original line number Diff line number Diff line Loading @@ -2,13 +2,15 @@ require "jsduck/aggregator" require "jsduck/source/file" require "jsduck/class" require "jsduck/relations" require "jsduck/override" describe JsDuck::Aggregator do def parse(string) agr = JsDuck::Aggregator.new agr.aggregate(JsDuck::Source::File.new(string, "blah.js")) agr.process_overrides JsDuck::Relations.new(agr.result.map {|cls| JsDuck::Class.new(cls) }) classes = agr.classes JsDuck::Override.new(classes).process_all! JsDuck::Relations.new(classes.values.map {|cls| JsDuck::Class.new(cls) }) end shared_examples_for "override" do Loading