provide better error message if path is uri [#5914 state:resolved]

Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
Neeraj Singh 2010-11-03 10:52:50 -04:00 committed by José Valim
parent 154e5d735e
commit 793967cd40
2 changed files with 16 additions and 3 deletions

View File

@ -878,7 +878,7 @@ module ActionView
end
def join_asset_file_contents(paths)
paths.collect { |path| File.read(asset_file_path!(path)) }.join("\n\n")
paths.collect { |path| File.read(asset_file_path!(path, true)) }.join("\n\n")
end
def write_asset_file_contents(joined_asset_path, asset_paths)
@ -896,8 +896,10 @@ module ActionView
File.join(config.assets_dir, path.split('?').first)
end
def asset_file_path!(path)
unless is_uri?(path)
def asset_file_path!(path, error_if_file_is_uri = false)
if is_uri?(path)
raise(Errno::ENOENT, "Asset file #{path} is uri and cannot be merged into single file") if error_if_file_is_uri
else
absolute_path = asset_file_path(path)
raise(Errno::ENOENT, "Asset file not found at '#{absolute_path}'" ) unless File.exist?(absolute_path)
return absolute_path

View File

@ -727,6 +727,17 @@ class AssetTagHelperTest < ActionView::TestCase
assert !File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'money.js'))
end
def test_caching_javascript_include_tag_when_caching_on_and_javascript_file_is_uri
ENV["RAILS_ASSET_ID"] = ""
config.perform_caching = true
assert_raise(Errno::ENOENT) {
javascript_include_tag('bank', 'robber', 'https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.js', :cache => true)
}
assert !File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'all.js'))
end
def test_caching_javascript_include_tag_when_caching_off_and_missing_javascript_file
ENV["RAILS_ASSET_ID"] = ""
config.perform_caching = false