Permalink
Browse files

Tidy up asset tag a bit and make railties tests green again.

  • Loading branch information...
josevalim committed Jun 22, 2010
1 parent 97b7733 commit ed5c096d60efc432d6f731f86a8ea3c2cb9aeb64
@@ -194,6 +194,19 @@ module Helpers #:nodoc:
# RewriteEngine On
# RewriteRule ^/release-\d+/(images|javascripts|stylesheets)/(.*)$ /$1/$2 [L]
module AssetTagHelper
+ mattr_reader :javascript_expansions
+ @@javascript_expansions = { }
+
+ mattr_reader :stylesheet_expansions
+ @@stylesheet_expansions = {}
+
+ # You can enable or disable the asset tag timestamps cache.
+ # With the cache enabled, the asset tag helper methods will make fewer
+ # expensive file system calls. However this prevents you from modifying
+ # any asset files while the server is running.
+ #
+ # ActionView::Helpers::AssetTagHelper.cache_asset_timestamps = false
+ mattr_accessor :cache_asset_timestamps
# Returns a link tag that browsers and news readers can use to auto-detect
# an RSS or ATOM feed. The +type+ can either be <tt>:rss</tt> (default) or
@@ -350,8 +363,6 @@ def javascript_include_tag(*sources)
end
end
- @@javascript_expansions = { }
-
# Register one or more javascript files to be included when <tt>symbol</tt>
# is passed to <tt>javascript_include_tag</tt>. This method is typically intended
# to be called from plugin initialization to register javascript files
@@ -367,12 +378,6 @@ def self.register_javascript_expansion(expansions)
@@javascript_expansions.merge!(expansions)
end
- def self.reset_javascript_expansions #:nodoc:
- @@javascript_expansions = {}
- end
-
- @@stylesheet_expansions = {}
-
# Register one or more stylesheet files to be included when <tt>symbol</tt>
# is passed to <tt>stylesheet_link_tag</tt>. This method is typically intended
# to be called from plugin initialization to register stylesheet files
@@ -698,23 +703,8 @@ def audio_tag(source, options = {})
tag("audio", options)
end
- def self.cache_asset_timestamps
- @@cache_asset_timestamps
- end
-
- # You can enable or disable the asset tag timestamps cache.
- # With the cache enabled, the asset tag helper methods will make fewer
- # expensive file system calls. However this prevents you from modifying
- # any asset files while the server is running.
- #
- # ActionView::Helpers::AssetTagHelper.cache_asset_timestamps = false
- def self.cache_asset_timestamps=(value)
- @@cache_asset_timestamps = value
- end
-
- @@cache_asset_timestamps = true
-
private
+
def rewrite_extension?(source, dir, ext)
source_ext = File.extname(source)[1..-1]
ext && (source_ext.blank? || (ext != source_ext && File.exist?(File.join(config.assets_dir, dir, "#{source}.#{ext}"))))
@@ -5,8 +5,7 @@ module ActionView
# = Action View Railtie
class Railtie < Rails::Railtie
config.action_view = ActiveSupport::OrderedOptions.new
-
- # setup default js includes
+ config.action_view.stylesheet_expansions = {}
config.action_view.javascript_expansions = { :defaults => ['prototype', 'effects', 'dragdrop', 'controls', 'rails'] }
require "action_view/railties/log_subscriber"
@@ -22,7 +21,13 @@ class Railtie < Rails::Railtie
initializer "action_view.javascript_expansions" do |app|
ActiveSupport.on_load(:action_view) do
- ActionView::Helpers::AssetTagHelper.register_javascript_expansion(app.config.action_view.javascript_expansions)
+ ActionView::Helpers::AssetTagHelper.register_javascript_expansion(
+ app.config.action_view.delete(:javascript_expansions)
+ )
+
+ ActionView::Helpers::AssetTagHelper.register_stylesheet_expansion(
+ app.config.action_view.delete(:stylesheet_expansions)
+ )
end
end
@@ -274,7 +274,7 @@ def test_custom_javascript_expansions_with_undefined_symbol
end
def test_reset_javascript_expansions
- ActionView::Helpers::AssetTagHelper::reset_javascript_expansions
+ ActionView::Helpers::AssetTagHelper.javascript_expansions.clear
assert_raise(ArgumentError) { javascript_include_tag(:defaults) }
end
@@ -915,7 +915,7 @@ def setup
@request = Struct.new(:protocol).new("gopher://")
@controller.request = @request
- ActionView::Helpers::AssetTagHelper::reset_javascript_expansions
+ ActionView::Helpers::AssetTagHelper.javascript_expansions.clear
end
def url_for(options)

0 comments on commit ed5c096

Please sign in to comment.