Class: JsDuck::Process::Overrides

Inherits:
Object
  • Object
show all
Defined in:
lib/jsduck/process/overrides.rb

Instance Method Summary collapse

Constructor Details

#initialize(classes_hash, opts = {:external_classes => []}) ⇒ Overrides

Returns a new instance of Overrides.



7
8
9
10
# File 'lib/jsduck/process/overrides.rb', line 7

def initialize(classes_hash, opts = {:external_classes => []})
  @classes_hash = classes_hash
  @opts = opts
end

Instance Method Details

#process_all!Object

Applies all override classes to target classes, then deletes the overrides themselves from classes hash and adds the names of all the processed overrides to external_classes list in options object.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/jsduck/process/overrides.rb', line 16

def process_all!
  overrides = []

  @classes_hash.each_value do |cls|
    if cls[:override]
      process(cls)
      overrides << cls
    end
  end

  # discard each override class
  overrides.each do |cls|
    @classes_hash.delete(cls[:name])
  end

  @opts[:external_classes] += overrides.map {|c| c[:name] }
end