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 = OpenStruct.new(:external => [])) ⇒ Overrides

Returns a new instance of Overrides.



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

def initialize(classes_hash, opts = OpenStruct.new(:external => []))
  @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.



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

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 += overrides.map {|c| c[:name] }
end