diff --git a/lib/generators/solid_queue/install/install_generator.rb b/lib/generators/solid_queue/install/install_generator.rb index 3d57391b..23fbf86c 100644 --- a/lib/generators/solid_queue/install/install_generator.rb +++ b/lib/generators/solid_queue/install/install_generator.rb @@ -12,9 +12,21 @@ def copy_files end def configure_active_job_adapter + production_rb = Pathname(destination_root).join("config/environments/production.rb") + + # Replace or set `config.active_job.queue_adapter` + gsub_file Pathname(destination_root).join("config/environments/production.rb"), + /config\.active_job\.queue_adapter\s+=.*/, + "config.active_job.queue_adapter = :solid_queue" + + # Inject `config.solid_queue.connects_to` if not already present gsub_file Pathname(destination_root).join("config/environments/production.rb"), - /(# )?config\.active_job\.queue_adapter\s+=.*/, - "config.active_job.queue_adapter = :solid_queue\n" + - " config.solid_queue.connects_to = { database: { writing: :queue } }\n" + /^\s*config\.solid_queue\.connects_to\s+=\s+\{.*\}\n/, + "", + verbose: false # If found, do nothing + + inject_into_file Pathname(destination_root).join("config/environments/production.rb"), + "\n config.solid_queue.connects_to = { database: { writing: :queue } }", + after: /config\.active_job\.queue_adapter\s+=.*/ end end