Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Assets pipeline: fix in manifest location and remove unused code #2780

Merged
merged 2 commits into from

2 participants

@guilleiguaran

No description provided.

@spastorino
Owner

the "manifest should be nil by default" commit needs a test and please add to the commit message "Closes #2776"

@spastorino spastorino merged commit c2a323d into rails:3-1-stable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
This page is out of date. Refresh to see the latest.
View
33 actionpack/lib/sprockets/assets.rake
@@ -23,29 +23,22 @@ namespace :assets do
manifest = {}
manifest_path = config.assets.manifest || target
- if env.respond_to?(:each_logical_path)
- config.assets.precompile.each do |path|
- env.each_logical_path do |logical_path|
- if path.is_a?(Regexp)
- next unless path.match(logical_path)
- else
- next unless File.fnmatch(path.to_s, logical_path)
- end
+ config.assets.precompile.each do |path|
+ env.each_logical_path do |logical_path|
+ if path.is_a?(Regexp)
+ next unless path.match(logical_path)
+ else
+ next unless File.fnmatch(path.to_s, logical_path)
+ end
- if asset = env.find_asset(logical_path)
- manifest[logical_path] = asset.digest_path
- filename = target.join(asset.digest_path)
- mkdir_p filename.dirname
- asset.write_to(filename)
- asset.write_to("#{filename}.gz") if filename.to_s =~ /\.(css|js)$/
- end
+ if asset = env.find_asset(logical_path)
+ manifest[logical_path] = asset.digest_path
+ filename = target.join(asset.digest_path)
+ mkdir_p filename.dirname
+ asset.write_to(filename)
+ asset.write_to("#{filename}.gz") if filename.to_s =~ /\.(css|js)$/
end
end
- else
- # TODO: Remove this once we're depending on sprockets beta 15
- assets = config.assets.precompile.dup
- assets << {:to => target}
- env.precompile(*assets)
end
File.open("#{manifest_path}/manifest.yml", 'w') do |f|
View
2  railties/lib/rails/application/configuration.rb
@@ -43,7 +43,7 @@ def initialize(*)
@assets.debug = false
@assets.compile = true
@assets.digest = false
- @assets.manifest = "#{root}/public#{@assets.prefix}"
+ @assets.manifest = nil
@assets.cache_store = [ :file_store, "#{root}/tmp/cache/assets/" ]
@assets.js_compressor = nil
@assets.css_compressor = nil
View
13 railties/test/application/assets_test.rb
@@ -96,6 +96,19 @@ def app
assert_match /application-([0-z]+)\.css/, assets["application.css"]
end
+ test "the manifest file should be saved by default in the same assets folder" do
+ app_file "app/assets/javascripts/application.js", "alert();"
+ app_file "config/initializers/manifest.rb", "Rails.application.config.assets.prefix = '/x'"
+
+ capture(:stdout) do
+ Dir.chdir(app_path){ `bundle exec rake assets:precompile` }
+ end
+
+ manifest = "#{app_path}/public/x/manifest.yml"
+ assets = YAML.load_file(manifest)
+ assert_match /application-([0-z]+)\.js/, assets["application.js"]
+ end
+
test "assets do not require any assets group gem when manifest file is present" do
app_file "app/assets/javascripts/application.js", "alert();"
Something went wrong with that request. Please try again.