mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
29 lines
1.1 KiB
Ruby
29 lines
1.1 KiB
Ruby
namespace :railties do
|
|
namespace :install do
|
|
# desc "Copies missing assets from Railties (e.g. plugins, engines). You can specify Railties to use with FROM=railtie1,railtie2"
|
|
task :assets => :rails_env do
|
|
require 'rails/generators/base'
|
|
Rails.application.initialize!
|
|
|
|
to_load = ENV["FROM"].blank? ? :all : ENV["FROM"].split(",").map {|n| n.strip }
|
|
app_public_path = Rails.application.paths["public"].first
|
|
|
|
Rails.application.railties.all do |railtie|
|
|
next unless to_load == :all || to_load.include?(railtie.railtie_name)
|
|
|
|
if railtie.respond_to?(:paths) && (path = railtie.paths["public"].first) &&
|
|
(assets_dir = railtie.config.compiled_asset_path) && File.exist?(path)
|
|
|
|
Rails::Generators::Base.source_root(path)
|
|
copier = Rails::Generators::Base.new
|
|
Dir[File.join(path, "**/*")].each do |file|
|
|
relative = file.gsub(/^#{path}\//, '')
|
|
if File.file?(file)
|
|
copier.copy_file relative, File.join(app_public_path, assets_dir, relative)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|