aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view/helpers
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2009-06-15 10:23:23 -0500
committerJoshua Peek <josh@joshpeek.com>2009-06-15 10:23:23 -0500
commitc50b03b754948b676b74c334edfb277fa45c1d14 (patch)
tree0e95f46d28ee495241dea364fa88c3c7b68afe21 /actionpack/lib/action_view/helpers
parentb56169c26240db1b1cff3c6f65a34b7516a9fc15 (diff)
downloadrails-c50b03b754948b676b74c334edfb277fa45c1d14.tar.gz
rails-c50b03b754948b676b74c334edfb277fa45c1d14.tar.bz2
rails-c50b03b754948b676b74c334edfb277fa45c1d14.zip
Add :concat option to asset tag helpers to force concatenation.
This is useful for working around IE's stylesheet limit. stylesheet_link_tag :all, :concat => true
Diffstat (limited to 'actionpack/lib/action_view/helpers')
-rw-r--r--actionpack/lib/action_view/helpers/asset_tag_helper.rb24
1 files changed, 18 insertions, 6 deletions
diff --git a/actionpack/lib/action_view/helpers/asset_tag_helper.rb b/actionpack/lib/action_view/helpers/asset_tag_helper.rb
index dffb7089b8..babb9db38a 100644
--- a/actionpack/lib/action_view/helpers/asset_tag_helper.rb
+++ b/actionpack/lib/action_view/helpers/asset_tag_helper.rb
@@ -272,14 +272,17 @@ module ActionView
# javascript_include_tag :all, :cache => true, :recursive => true
def javascript_include_tag(*sources)
options = sources.extract_options!.stringify_keys
- cache = options.delete("cache")
+ concat = options.delete("concat")
+ cache = concat || options.delete("cache")
recursive = options.delete("recursive")
- if ActionController::Base.perform_caching && cache
+ if concat || (ActionController::Base.perform_caching && cache)
joined_javascript_name = (cache == true ? "all" : cache) + ".js"
joined_javascript_path = File.join(joined_javascript_name[/^#{File::SEPARATOR}/] ? ASSETS_DIR : JAVASCRIPTS_DIR, joined_javascript_name)
- write_asset_file_contents(joined_javascript_path, compute_javascript_paths(sources, recursive)) unless File.exists?(joined_javascript_path)
+ unless ActionController::Base.perform_caching && File.exists?(joined_javascript_path)
+ write_asset_file_contents(joined_javascript_path, compute_javascript_paths(sources, recursive))
+ end
javascript_src_tag(joined_javascript_name, options)
else
expand_javascript_sources(sources, recursive).collect { |source| javascript_src_tag(source, options) }.join("\n")
@@ -410,16 +413,25 @@ module ActionView
# The <tt>:recursive</tt> option is also available for caching:
#
# stylesheet_link_tag :all, :cache => true, :recursive => true
+ #
+ # To force concatenation (even in development mode) set <tt>:concat</tt> to true. This is useful if
+ # you have too many stylesheets for IE to load.
+ #
+ # stylesheet_link_tag :all, :concat => true
+ #
def stylesheet_link_tag(*sources)
options = sources.extract_options!.stringify_keys
- cache = options.delete("cache")
+ concat = options.delete("concat")
+ cache = concat || options.delete("cache")
recursive = options.delete("recursive")
- if ActionController::Base.perform_caching && cache
+ if concat || (ActionController::Base.perform_caching && cache)
joined_stylesheet_name = (cache == true ? "all" : cache) + ".css"
joined_stylesheet_path = File.join(joined_stylesheet_name[/^#{File::SEPARATOR}/] ? ASSETS_DIR : STYLESHEETS_DIR, joined_stylesheet_name)
- write_asset_file_contents(joined_stylesheet_path, compute_stylesheet_paths(sources, recursive)) unless File.exists?(joined_stylesheet_path)
+ unless ActionController::Base.perform_caching && File.exists?(joined_stylesheet_path)
+ write_asset_file_contents(joined_stylesheet_path, compute_stylesheet_paths(sources, recursive))
+ end
stylesheet_tag(joined_stylesheet_name, options)
else
expand_stylesheet_sources(sources, recursive).collect { |source| stylesheet_tag(source, options) }.join("\n")