mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
fb1ab3460a
* Make Sprockets more optional, offer Propshaft as alternative * Whups, local reference * No longer used * Spacing * Need explicit sprockets-rails inclusion now * Manually require the sprockets railtie * Don't need these changes right now * Kick off another build * Fix tests * DRY up test * Require railtie when using sprockets * Introduce option to skip asset pipeline * No longer relevant * Always have to return * Gone * Add helper for skip_sprockets? * Fix guard statement * Use latest gems * Include propshaft * fix tests for #43261 (#43277) * help fix tests for #43261 skip_sprockets? should not be called on options :skip_sprockets is no longer a value in the option hash, so skip_sprockets? should not be called on it move --asset-pipeline to shared generator skip_sprockets? is defined on app_base, and used in the plugin generator to determine whether to add the engine's assets to the dummy sprockets manifest, so I believe it makes sense to include in both generators Because of this change, I also changed the shared test back to testing against non-sprockets add skip_sprockets to Gemfile template vars Mocking skip_sprockets? in app_base generator fix more generator tests * use skip_sprockets? everywhere * Use latest propshaft * Update `AssetUrlHelper` docs to list both asset pipeline gems (#43328) * Update to latest Propshaft * Bump Propshaft again * Ask for latest * Use latest propshaft Co-authored-by: Hartley McGuire <skipkayhil@gmail.com> Co-authored-by: Richard Macklin <1863540+rmacklin@users.noreply.github.com>
35 lines
1.3 KiB
Ruby
35 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "rails/generators"
|
|
require "rails/generators/rails/app/app_generator"
|
|
|
|
module Rails
|
|
class AppUpdater # :nodoc:
|
|
class << self
|
|
def invoke_from_app_generator(method)
|
|
app_generator.send(method)
|
|
end
|
|
|
|
def app_generator
|
|
@app_generator ||= begin
|
|
gen = Rails::Generators::AppGenerator.new ["rails"], generator_options, destination_root: Rails.root
|
|
gen.send(:valid_const?) unless File.exist?(Rails.root.join("config", "application.rb"))
|
|
gen
|
|
end
|
|
end
|
|
|
|
private
|
|
def generator_options
|
|
options = { api: !!Rails.application.config.api_only, update: true }
|
|
options[:skip_active_record] = !defined?(ActiveRecord::Railtie)
|
|
options[:skip_active_storage] = !defined?(ActiveStorage::Engine) || !defined?(ActiveRecord::Railtie)
|
|
options[:skip_action_mailer] = !defined?(ActionMailer::Railtie)
|
|
options[:skip_action_cable] = !defined?(ActionCable::Engine)
|
|
options[:skip_asset_pipeline] = !defined?(Sprockets::Railtie) && !defined?(Propshaft::Railtie)
|
|
options[:skip_bootsnap] = !defined?(Bootsnap)
|
|
options[:updating] = true
|
|
options
|
|
end
|
|
end
|
|
end
|
|
end
|