Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/diaspora/diaspora.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tasks/assets.rake')
-rw-r--r--lib/tasks/assets.rake31
1 files changed, 18 insertions, 13 deletions
diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake
index 38101d7b3..4c65b8500 100644
--- a/lib/tasks/assets.rake
+++ b/lib/tasks/assets.rake
@@ -1,35 +1,40 @@
# frozen_string_literal: true
namespace :assets do
+ # create new assets manifest for tasks which run after assets:precompile
+ def assets_manifest
+ return @assets_manifest if @assets_manifest
+
+ config = Diaspora::Application.config
+ path = File.join(config.paths["public"].first, config.assets.prefix)
+ @assets_manifest = Sprockets::Manifest.new(Diaspora::Application.assets, path, config.assets.manifest)
+ end
+
desc "Generate error pages"
- task :generate_error_pages => :environment do
+ task generate_error_pages: :environment do
+ ApplicationController.view_context_class.assets_manifest = assets_manifest
renderer = ErrorPageRenderer.new codes: [404, 422, 500]
renderer.render
end
desc "Create non digest assets"
task non_digest_assets: :environment do
- logger = ::Logging::Logger["assets:non_digest_assets"]
+ Diaspora::Application.config.assets.non_digest_assets.each do |asset|
+ digested_path = assets_manifest.assets[asset]
+ raise Sprockets::Rails::Helper::AssetNotFound, "Precompiled asset for '#{asset}' not found" unless digested_path
- non_digest_assets = Diaspora::Application.config.assets.non_digest_assets
-
- Rails.application.assets_manifest.assets.each do |logical_path, digested_path|
- logical_pathname = Pathname.new(logical_path)
- next unless non_digest_assets.any? {|testpath| logical_pathname.fnmatch?(testpath, File::FNM_PATHNAME) }
-
- full_digested_path = Rails.root.join("public", "assets", digested_path)
- full_non_digested_path = Rails.root.join("public", "assets", logical_path)
+ full_digested_path = File.join(assets_manifest.directory, digested_path)
+ full_non_digested_path = File.join(assets_manifest.directory, asset)
next unless FileUtils.uptodate?(full_digested_path, [full_non_digested_path])
- logger.info "Copying #{full_digested_path} to #{full_non_digested_path}"
-
+ puts "Copying #{full_digested_path} to #{full_non_digested_path}"
FileUtils.copy_file(full_digested_path, full_non_digested_path, true)
end
end
# Augment precompile with error page generation
- task :precompile do
+ Rake::Task[:precompile].enhance do
Rake::Task["assets:generate_error_pages"].invoke
Rake::Task["assets:non_digest_assets"].invoke
end