Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of git://github.com/rails/rails
- Loading branch information
Showing
62 changed files
with
686 additions
and
374 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,60 +1,95 @@ | ||
require "fileutils" | ||
|
||
namespace :assets do | ||
def ruby_rake_task(task) | ||
env = ENV['RAILS_ENV'] || 'production' | ||
groups = ENV['RAILS_GROUPS'] || 'assets' | ||
args = [$0, task,"RAILS_ENV=#{env}","RAILS_GROUPS=#{groups}"] | ||
args << "--trace" if Rake.application.options.trace | ||
ruby *args | ||
end | ||
|
||
# We are currently running with no explicit bundler group | ||
# and/or no explicit environment - we have to reinvoke rake to | ||
# execute this task. | ||
def invoke_or_reboot_rake_task(task) | ||
if ENV['RAILS_GROUPS'].to_s.empty? || ENV['RAILS_ENV'].to_s.empty? | ||
ruby_rake_task task | ||
else | ||
Rake::Task[task].invoke | ||
end | ||
end | ||
|
||
desc "Compile all the assets named in config.assets.precompile" | ||
task :precompile do | ||
# We need to do this dance because RAILS_GROUPS is used | ||
# too early in the boot process and changing here is already too late. | ||
if ENV["RAILS_GROUPS"].to_s.empty? || ENV["RAILS_ENV"].to_s.empty? | ||
ENV["RAILS_GROUPS"] ||= "assets" | ||
ENV["RAILS_ENV"] ||= "production" | ||
ruby $0, *ARGV | ||
else | ||
require "fileutils" | ||
Rake::Task["tmp:cache:clear"].invoke | ||
Rake::Task["assets:environment"].invoke | ||
invoke_or_reboot_rake_task "assets:precompile:all" | ||
end | ||
|
||
namespace :precompile do | ||
def internal_precompile(digest=nil) | ||
unless Rails.application.config.assets.enabled | ||
raise "Cannot precompile assets if sprockets is disabled. Please set config.assets.enabled to true" | ||
warn "Cannot precompile assets if sprockets is disabled. Please set config.assets.enabled to true" | ||
exit | ||
end | ||
|
||
# Ensure that action view is loaded and the appropriate sprockets hooks get executed | ||
# Ensure that action view is loaded and the appropriate | ||
# sprockets hooks get executed | ||
_ = ActionView::Base | ||
|
||
config = Rails.application.config | ||
config.assets.compile = true | ||
config.assets.digest = false if ENV["RAILS_ASSETS_NONDIGEST"] | ||
|
||
env = Rails.application.assets | ||
|
||
# Always compile files and avoid use of existing precompiled assets | ||
config.assets.compile = true | ||
config.assets.digest = digest unless digest.nil? | ||
config.assets.digests = {} | ||
|
||
target = File.join(Rails.public_path, config.assets.prefix) | ||
static_compiler = Sprockets::StaticCompiler.new(env, target, :digest => config.assets.digest) | ||
env = Rails.application.assets | ||
target = File.join(Rails.public_path, config.assets.prefix) | ||
compiler = Sprockets::StaticCompiler.new(env, | ||
target, | ||
config.assets.precompile, | ||
:manifest_path => config.assets.manifest, | ||
:digest => config.assets.digest, | ||
:manifest => digest.nil?) | ||
compiler.compile | ||
end | ||
|
||
manifest = static_compiler.precompile(config.assets.precompile) | ||
manifest_path = config.assets.manifest || target | ||
FileUtils.mkdir_p(manifest_path) | ||
task :all do | ||
Rake::Task["assets:precompile:primary"].invoke | ||
# We need to reinvoke in order to run the secondary digestless | ||
# asset compilation run - a fresh Sprockets environment is | ||
# required in order to compile digestless assets as the | ||
# environment has already cached the assets on the primary | ||
# run. | ||
ruby_rake_task "assets:precompile:nondigest" if Rails.application.config.assets.digest | ||
end | ||
|
||
unless ENV["RAILS_ASSETS_NONDIGEST"] | ||
File.open("#{manifest_path}/manifest.yml", 'wb') do |f| | ||
YAML.dump(manifest, f) | ||
end | ||
ENV["RAILS_ASSETS_NONDIGEST"] = "true" | ||
ruby $0, *ARGV | ||
end | ||
task :primary => ["assets:environment", "tmp:cache:clear"] do | ||
internal_precompile | ||
end | ||
|
||
task :nondigest => ["assets:environment", "tmp:cache:clear"] do | ||
internal_precompile(false) | ||
end | ||
end | ||
|
||
desc "Remove compiled assets" | ||
task :clean => ['assets:environment', 'tmp:cache:clear'] do | ||
config = Rails.application.config | ||
public_asset_path = File.join(Rails.public_path, config.assets.prefix) | ||
rm_rf public_asset_path, :secure => true | ||
task :clean do | ||
invoke_or_reboot_rake_task "assets:clean:all" | ||
end | ||
|
||
namespace :clean do | ||
task :all => ["assets:environment", "tmp:cache:clear"] do | ||
config = Rails.application.config | ||
public_asset_path = File.join(Rails.public_path, config.assets.prefix) | ||
rm_rf public_asset_path, :secure => true | ||
end | ||
end | ||
|
||
task :environment do | ||
Rails.application.initialize!(:assets) | ||
Sprockets::Bootstrap.new(Rails.application).run | ||
if Rails.application.config.assets.initialize_on_precompile | ||
Rake::Task["environment"].invoke | ||
else | ||
Rails.application.initialize!(:assets) | ||
Sprockets::Bootstrap.new(Rails.application).run | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
module Sprockets | ||
module Helpers | ||
autoload :RailsHelper, "sprockets/helpers/rails_helper" | ||
autoload :RailsHelper, "sprockets/helpers/rails_helper" | ||
autoload :IsolatedHelper, "sprockets/helpers/isolated_helper" | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
module Sprockets | ||
module Helpers | ||
module IsolatedHelper | ||
def controller | ||
nil | ||
end | ||
|
||
def config | ||
Rails.application.config.action_controller | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.