Sha256: 2a7b7ba0ceb065e7cfd122748deda63f1519fcc043afd13a69b8b9e3d68a449e
Contents?: true
Size: 1.08 KB
Versions: 6
Compression:
Stored size: 1.08 KB
Contents
ActionController::Base.class_eval do def self.defer_scripts before_filter :defer_scripts end def defer_scripts Thread.current[:deferred_scripts_called] = false Thread.current[:defer_scripts] = request.xhr? ? false : true end def self.defer_scripts? !!Thread.current[:defer_scripts] end end ActionView::Base.class_eval do def defer_scripts? ActionController::Base.defer_scripts? end def initialize_deferred_scripts return "" unless defer_scripts? not_deferred_script do javascript_tag "var deferred = [];" end end def not_deferred_script &block before = Thread.current[:defer_scripts] begin Thread.current[:defer_scripts] = false block.call ensure Thread.current[:defer_scripts] = before end end def call_deferred_scripts return "" unless defer_scripts? Thread.current[:deferred_scripts_called] = true content = <<END $.each(deferred, function(){this()}); $('._deferred').show(); deferred = []; END not_deferred_script do javascript_tag content end end end
Version data entries
6 entries across 6 versions & 1 rubygems