aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSantiago Pastorino <santiago@wyeworks.com>2011-08-01 12:32:17 -0700
committerXavier Noria <fxn@hashref.com>2011-08-13 16:22:27 -0700
commitf9a69e8744546602b567dc5787f7d8ee23073bec (patch)
treee585ccf4976d7a54ab53632f6a881ed4821e95e7
parent05d4b9d2fdb0aceb9082303301ecaf77605288a0 (diff)
downloadrails-f9a69e8744546602b567dc5787f7d8ee23073bec.tar.gz
rails-f9a69e8744546602b567dc5787f7d8ee23073bec.tar.bz2
rails-f9a69e8744546602b567dc5787f7d8ee23073bec.zip
Merge pull request #2324 from zenapsis/3-1-stable
Rails 3.1 throws a Errno::ENOTDIR if files are put in assets directories
-rw-r--r--railties/lib/rails/engine.rb6
-rw-r--r--railties/lib/rails/paths.rb4
-rw-r--r--railties/test/application/assets_test.rb14
3 files changed, 21 insertions, 3 deletions
diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb
index c41f7d7c2e..2c3f61f404 100644
--- a/railties/lib/rails/engine.rb
+++ b/railties/lib/rails/engine.rb
@@ -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|
diff --git a/railties/lib/rails/paths.rb b/railties/lib/rails/paths.rb
index de3d0b6fc5..55b820b12e 100644
--- a/railties/lib/rails/paths.rb
+++ b/railties/lib/rails/paths.rb
@@ -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
diff --git a/railties/test/application/assets_test.rb b/railties/test/application/assets_test.rb
index 7fb930bd99..802b737483 100644
--- a/railties/test/application/assets_test.rb
+++ b/railties/test/application/assets_test.rb
@@ -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