Sha256: 6f1e22256d2fa387e3aaf4189796a20820e9f2f48fda31f1d38eb6e0d8813b22

Contents?: true

Size: 1.16 KB

Versions: 13

Compression:

Stored size: 1.16 KB

Contents

module JsDuck
  module Process

    # 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.
    class Ext4Events
      def initialize(classes, opts={})
        @classes = classes
        @opts = opts
      end

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

      # Are we dealing with code looking like ExtJS 4?
      # True if any of the classes is defined with Ext.define()
      def ext4_style_code?
        @classes.values.any? {|cls| cls[:code_type] == :ext_define }
      end

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

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

    end

  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
jsduck-5.3.4 lib/jsduck/process/ext4_events.rb
jsduck-5.3.3 lib/jsduck/process/ext4_events.rb
jsduck-5.3.2 lib/jsduck/process/ext4_events.rb
jsduck-5.3.1 lib/jsduck/process/ext4_events.rb
jsduck-5.3.0 lib/jsduck/process/ext4_events.rb
jsduck-5.2.0 lib/jsduck/process/ext4_events.rb
jsduck-5.1.0 lib/jsduck/process/ext4_events.rb
jsduck-5.0.1 lib/jsduck/process/ext4_events.rb
jsduck-5.0.0 lib/jsduck/process/ext4_events.rb
jsduck-5.0.0.beta5 lib/jsduck/process/ext4_events.rb
jsduck-5.0.0.beta4 lib/jsduck/process/ext4_events.rb
jsduck-5.0.0.beta3 lib/jsduck/process/ext4_events.rb
jsduck-5.0.0.beta2 lib/jsduck/process/ext4_events.rb