Sha256: d64bc4c03df6c4e285b7f707e050a156847d423d9ab08b9961c6f3fb08aa1069

Contents?: true

Size: 940 Bytes

Versions: 1

Compression:

Stored size: 940 Bytes

Contents

##
# ExtJS::Helpers::Component
#
module ExtJS::Helpers
  module Component
    ##
    # add class-var @@extjs_on_ready
    def self.included(controller)
      controller.class_eval do
        @@onready_queue = []
      end
    end

    def extjs_component(*params)
      options = params.extract_options!
      options[:controller] = self
      ExtJS::Component.new(options)
    end

    ##
    # Adds a script or ExtJS::Component instance to on_ready queue.  The queue is emptied and rendered to
    # <script></script> via #extjs_render
    #
    def extjs_onready(*params)
      params.each do |cmp|
        @@onready_queue << cmp
      end
    end

    ##
    # Empties the on_ready queue.  Renders within <script></script> tags
    #
    def extjs_render
      "<script>\nExt.onReady(function() {\n\t#{@@onready_queue.collect {|cmp| (cmp.kind_of?(ExtJS::Component)) ? cmp.render : cmp}.join("\n\t")}\n });\n</script>"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
extjs-mvc-0.1.20 lib/helpers/component.rb