Sha256: cfee6fc31b67b666b2210aa7428425e115ef1e22d56068da99b47664e07f85d5

Contents?: true

Size: 1.24 KB

Versions: 18

Compression:

Stored size: 1.24 KB

Contents

ActionController::Base.class_eval do
  def self.defer_static_scripts
    before_filter :defer_static_scripts
  end
  
  def defer_static_scripts
    Thread.current[:deferred_static_scripts_called] = false
    Thread.current[:defer_static_scripts] = request.xhr? ? false : true
  end
  
  def self.defer_static_scripts?
    !!Thread.current[:defer_static_scripts]
  end
end

ActionView::Base.class_eval do
  def defer_static_scripts?
    ActionController::Base.defer_static_scripts?
  end
      
  def initialize_deferred_static_scripts
    return "" unless defer_static_scripts?
    not_deferred_static_script do
      javascript_tag "var deferred_static_scripts = [];"
    end
  end
  
  def not_deferred_static_script &block
    before = Thread.current[:defer_static_scripts]
    begin
      Thread.current[:defer_static_scripts] = false
      block.call
    ensure
      Thread.current[:defer_static_scripts] = before
    end
  end
  
  def call_deferred_static_scripts
    return "" unless defer_static_scripts?
    Thread.current[:deferred_static_scripts_called] = true
    content = <<END
$.each(deferred_static_scripts, function(){this()});
deferred_static_scripts = [];
END
    not_deferred_static_script do
      javascript_tag content
    end
  end
  
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
rails-ext-0.3.2 lib/rails_ext/micelaneous/defer_static_javascripts.rb
rails-ext-0.3.1 lib/rails_ext/micelaneous/defer_static_javascripts.rb
rails-ext-0.3 lib/rails_ext/micelaneous/defer_static_javascripts.rb
rails-ext-0.2.21 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.20 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.19 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.18 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.17 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.16 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.15 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.14 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.13 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.12 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.11 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.10 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.9 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.8 lib/rails_ext/defer_static_javascripts.rb
rails-ext-0.2.7 lib/rails_ext/defer_static_javascripts.rb