Merge pull request #2324 from zenapsis/3-1-stable

Rails 3.1 throws a Errno::ENOTDIR if files are put in assets directories
This commit is contained in:
Santiago Pastorino 2011-08-01 12:32:17 -07:00 committed by Xavier Noria
parent 05d4b9d2fd
commit f9a69e8744
3 changed files with 21 additions and 3 deletions

View File

@ -542,9 +542,9 @@ module Rails
end
initializer :append_assets_path do |app|
app.config.assets.paths.unshift(*paths["vendor/assets"].existent)
app.config.assets.paths.unshift(*paths["lib/assets"].existent)
app.config.assets.paths.unshift(*paths["app/assets"].existent)
app.config.assets.paths.unshift(*paths["vendor/assets"].existent_directories)
app.config.assets.paths.unshift(*paths["lib/assets"].existent_directories)
app.config.assets.paths.unshift(*paths["app/assets"].existent_directories)
end
initializer :prepend_helpers_path do |app|

View File

@ -171,6 +171,10 @@ module Rails
def existent
expanded.select { |f| File.exists?(f) }
end
def existent_directories
expanded.select {|d| Dir.exists?(d) }
end
alias to_a expanded
end

View File

@ -109,5 +109,19 @@ module ApplicationTests
assert_match "alert()", last_response.body
assert_equal nil, last_response.headers["Set-Cookie"]
end
test "files in any assets/ directories are not added to Sprockets" do
%w[app lib vendor].each do |dir|
app_file "#{dir}/assets/#{dir}_test.erb", "testing"
end
app_file "app/assets/javascripts/demo.js", "alert();"
require "#{app_path}/config/environment"
get "/assets/demo.js"
assert_match "alert();", last_response.body
assert_equal 200, last_response.status
end
end
end