提交 ed5c096d 编写于 作者: J José Valim

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

上级 97b77330
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册