From 06424fa86e3f031e5652b7acd5c29d32e18c7ec8 Mon Sep 17 00:00:00 2001 From: Ugurcan Kaya Date: Sun, 15 Sep 2024 01:42:40 -0700 Subject: [PATCH 1/3] refactor adapter configuration in generator --- .../solid_queue/install/install_generator.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/generators/solid_queue/install/install_generator.rb b/lib/generators/solid_queue/install/install_generator.rb index 3d57391b..f47bbe00 100644 --- a/lib/generators/solid_queue/install/install_generator.rb +++ b/lib/generators/solid_queue/install/install_generator.rb @@ -12,9 +12,14 @@ def copy_files end def configure_active_job_adapter - 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" + production_rb = Pathname(destination_root).join("config/environments/production.rb") + + # Replace the active_job queue_adapter line + gsub_file(production_rb, /(# )?config\.active_job\.queue_adapter\s+=.*/, "config.active_job.queue_adapter = :solid_queue") + + # Add the solid_queue connects_to line if it doesn't exist + unless File.foreach(production_rb).any? { |line| line.include?("config.solid_queue.connects_to = { database: { writing: :queue } }") } + inject_into_file(production_rb, "\n config.solid_queue.connects_to = { database: { writing: :queue } }", after: "config.active_job.queue_adapter = :solid_queue\n") + end end end From c9e234d1948e572447c45947046e49c3ab674b51 Mon Sep 17 00:00:00 2001 From: Ugurcan Kaya Date: Mon, 16 Sep 2024 16:02:38 -0700 Subject: [PATCH 2/3] refactor to use regex to check for solid_queue connects_to --- .../solid_queue/install/install_generator.rb | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/generators/solid_queue/install/install_generator.rb b/lib/generators/solid_queue/install/install_generator.rb index f47bbe00..223a6a1f 100644 --- a/lib/generators/solid_queue/install/install_generator.rb +++ b/lib/generators/solid_queue/install/install_generator.rb @@ -14,12 +14,19 @@ def copy_files def configure_active_job_adapter production_rb = Pathname(destination_root).join("config/environments/production.rb") - # Replace the active_job queue_adapter line - gsub_file(production_rb, /(# )?config\.active_job\.queue_adapter\s+=.*/, "config.active_job.queue_adapter = :solid_queue") + # 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" - # Add the solid_queue connects_to line if it doesn't exist - unless File.foreach(production_rb).any? { |line| line.include?("config.solid_queue.connects_to = { database: { writing: :queue } }") } - inject_into_file(production_rb, "\n config.solid_queue.connects_to = { database: { writing: :queue } }", after: "config.active_job.queue_adapter = :solid_queue\n") - end + # Inject `config.solid_queue.connects_to` if not already present + gsub_file Pathname(destination_root).join("config/environments/production.rb"), + /^\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 From c366240b973b2c97c927a78765e8d6ec4d69f464 Mon Sep 17 00:00:00 2001 From: Ugurcan Kaya Date: Mon, 16 Sep 2024 16:11:17 -0700 Subject: [PATCH 3/3] fix rubocop warning --- lib/generators/solid_queue/install/install_generator.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/generators/solid_queue/install/install_generator.rb b/lib/generators/solid_queue/install/install_generator.rb index 223a6a1f..23fbf86c 100644 --- a/lib/generators/solid_queue/install/install_generator.rb +++ b/lib/generators/solid_queue/install/install_generator.rb @@ -22,7 +22,7 @@ def configure_active_job_adapter # Inject `config.solid_queue.connects_to` if not already present gsub_file Pathname(destination_root).join("config/environments/production.rb"), /^\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"),