Class: JsDuck::Process::Ext4Events

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

Overview

Appends Ext4 options parameter to the parameter list of each event in each class.

But only does so when :ext4_events option is set to true or the code itself is detected as being writted in Ext4 style.

Constant Summary collapse

OPTIONS =
{
  :tagname => :params,
  :name => "eOpts",
  :type => "Object",
  :doc => "The options object passed to {@link Ext.util.Observable#addListener}.",
  :ext4_auto_param => true,
}

Instance Method Summary collapse

Constructor Details

#initialize(classes, opts = OpenStruct.new) ⇒ Ext4Events

Returns a new instance of Ext4Events.



12
13
14
15
# File 'lib/jsduck/process/ext4_events.rb', line 12

def initialize(classes, opts=OpenStruct.new)
  @classes = classes
  @opts = opts
end

Instance Method Details

#ext4_style_code?Boolean

Are we dealing with code looking like ExtJS 4? True if any of the classes is defined with Ext.define()

Returns:

  • (Boolean)


25
26
27
# File 'lib/jsduck/process/ext4_events.rb', line 25

def ext4_style_code?
  @classes.values.any? {|cls| cls[:code_type] == :ext_define }
end

#process(cls) ⇒ Object



29
30
31
32
33
# File 'lib/jsduck/process/ext4_events.rb', line 29

def process(cls)
  cls[:members].each do |m|
    m[:params] << OPTIONS if m[:tagname] == :event
  end
end

#process_all!Object



17
18
19
20
21
# File 'lib/jsduck/process/ext4_events.rb', line 17

def process_all!
  if @opts.ext4_events == true || (@opts.ext4_events == nil && ext4_style_code?)
    @classes.each_value {|cls| process(cls) }
  end
end