Skip to content

Commit

Permalink
Merge pull request #2780 from guilleiguaran/assets-pipeline-minor-cha…
Browse files Browse the repository at this point in the history
…nges

Assets pipeline: fix in manifest location and remove unused code
  • Loading branch information
spastorino committed Sep 1, 2011
1 parent c5a91d0 commit 3ce3b5b
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 21 deletions.
33 changes: 13 additions & 20 deletions actionpack/lib/sprockets/assets.rake
Expand Up @@ -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|
Expand Down
2 changes: 1 addition & 1 deletion railties/lib/rails/application/configuration.rb
Expand Up @@ -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
Expand Down
13 changes: 13 additions & 0 deletions railties/test/application/assets_test.rb
Expand Up @@ -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();"

Expand Down

0 comments on commit 3ce3b5b

Please sign in to comment.