Class: Maquina::Generators::SolidQueueGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Maquina::Generators::SolidQueueGenerator
- Defined in:
- lib/generators/maquina/solid_queue/solid_queue_generator.rb
Instance Method Summary collapse
-
#add_gem ⇒ Object
1.
-
#configure_application ⇒ Object
3.
-
#create_config ⇒ Object
2.
-
#install_migrations ⇒ Object
6.
-
#run_bundle_install ⇒ Object
5.
-
#show_post_install ⇒ Object
7.
-
#update_procfile ⇒ Object
4.
Instance Method Details
#add_gem ⇒ Object
-
Add gem to Gemfile
14 15 16 17 18 19 20 21 22 |
# File 'lib/generators/maquina/solid_queue/solid_queue_generator.rb', line 14 def add_gem gemfile_path = File.join(destination_root, "Gemfile") if File.exist?(gemfile_path) content = File.read(gemfile_path) unless content.include?('gem "solid_queue"') append_to_file "Gemfile", "\ngem \"solid_queue\"\n" end end end |
#configure_application ⇒ Object
-
Configure application
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/generators/maquina/solid_queue/solid_queue_generator.rb', line 30 def configure_application application_file = File.join(destination_root, "config/application.rb") return unless File.exist?(application_file) content = File.read(application_file) return if content.include?("solid_queue") inject_into_file "config/application.rb", after: /class Application < Rails::Application\n/ do <<~RUBY.indent(4) # Use Solid Queue as the Active Job backend in all environments except test config.active_job.queue_adapter = :solid_queue unless Rails.env.test? config.solid_queue.connects_to = {database: {writing: :queue}} RUBY end end |
#create_config ⇒ Object
-
Config file
25 26 27 |
# File 'lib/generators/maquina/solid_queue/solid_queue_generator.rb', line 25 def create_config template "config/solid_queue.yml", "config/solid_queue.yml" end |
#install_migrations ⇒ Object
-
Install migrations
69 70 71 72 73 74 75 |
# File 'lib/generators/maquina/solid_queue/solid_queue_generator.rb', line 69 def install_migrations return unless rails_app? Bundler.with_unbundled_env do system("bin/rails solid_queue:install", chdir: destination_root) end end |
#run_bundle_install ⇒ Object
-
Bundle install
60 61 62 63 64 65 66 |
# File 'lib/generators/maquina/solid_queue/solid_queue_generator.rb', line 60 def run_bundle_install return unless rails_app? Bundler.with_unbundled_env do system("bundle install", chdir: destination_root) end end |
#show_post_install ⇒ Object
-
Post-install message
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/generators/maquina/solid_queue/solid_queue_generator.rb', line 78 def show_post_install return if [:quiet] say "" say "Solid Queue has been installed!", :green say "" say "Next steps:", :yellow say " 1. bin/rails db:migrate" if [:database] == "sqlite3" say " 2. Configure a separate queue database in config/database.yml:" say " queue:" say " <<: *default" say " database: storage/queue.sqlite3" say " migrations_paths: db/queue_migrate" end say "" say "Configuration:", :yellow say " - Adjust workers/dispatchers in config/solid_queue.yml" say " - Procfile.dev updated with solid_queue process" say "" end |
#update_procfile ⇒ Object
-
Update Procfile.dev
49 50 51 52 53 54 55 56 57 |
# File 'lib/generators/maquina/solid_queue/solid_queue_generator.rb', line 49 def update_procfile procfile_path = File.join(destination_root, "Procfile.dev") return unless File.exist?(procfile_path) content = File.read(procfile_path) return if content.include?("solid_queue:") append_to_file "Procfile.dev", "solid_queue: bin/rails solid_queue:start\n" end |