Class: RailsTemplate18f::Generators::SidekiqGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- RailsTemplate18f::Generators::SidekiqGenerator
- Includes:
- Base
- Defined in:
- lib/generators/rails_template18f/sidekiq/sidekiq_generator.rb
Instance Method Summary collapse
- #configure_active_job ⇒ Object
- #configure_server_runner ⇒ Object
- #configure_sidekiq_ui ⇒ Object
- #install_gem ⇒ Object
- #install_redis ⇒ Object
- #update_boundary_diagram ⇒ Object
Instance Method Details
#configure_active_job ⇒ Object
42 43 44 45 46 |
# File 'lib/generators/rails_template18f/sidekiq/sidekiq_generator.rb', line 42 def configure_active_job generate "rails_template18f:cloud_gov_config", inline: true copy_file "config/initializers/redis.rb" application "config.active_job.queue_adapter = :sidekiq" end |
#configure_server_runner ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/generators/rails_template18f/sidekiq/sidekiq_generator.rb', line 30 def configure_server_runner append_to_file "Procfile.dev", "worker: bundle exec sidekiq\n" insert_into_file file_path("terraform/app.tf"), <<EOT, after: "processes = [\n" { type = "worker" instances = var.worker_instances memory = var.worker_memory command = "bundle exec sidekiq" }, EOT end |
#configure_sidekiq_ui ⇒ Object
48 49 50 51 52 53 54 55 |
# File 'lib/generators/rails_template18f/sidekiq/sidekiq_generator.rb', line 48 def configure_sidekiq_ui prepend_to_file "config/routes.rb", "require \"sidekiq/web\"\n\n" route <<~EOR if Rails.env.development? mount Sidekiq::Web => "/sidekiq" end EOR end |
#install_gem ⇒ Object
15 16 17 18 19 |
# File 'lib/generators/rails_template18f/sidekiq/sidekiq_generator.rb', line 15 def install_gem return if gem_installed?("sidekiq") gem "sidekiq", "~> 7.3" bundle_install end |
#install_redis ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/generators/rails_template18f/sidekiq/sidekiq_generator.rb', line 21 def install_redis append_to_file "Brewfile", <<~EOB # queue for sidekiq jobs brew "redis" EOB insert_into_file "README.md", indent("* [redis](https://redis.io/)\n"), after: /\* Install homebrew dependencies: `brew bundle`\n/ end |
#update_boundary_diagram ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/generators/rails_template18f/sidekiq/sidekiq_generator.rb', line 57 def update_boundary_diagram boundary_filename = "doc/compliance/apps/application.boundary.md" insert_into_file boundary_filename, indent(<<~EOB, 16), after: /ContainerDb\(app_db.*$\n/ Container(worker, "<&layers> Sidekiq workers", "Ruby #{ruby_version}, Sidekiq", "Perform background work and data processing") ContainerDb(redis, "Redis Database", "AWS ElastiCache (Redis)", "Background job queue") EOB insert_into_file boundary_filename, <<~EOB, before: "@enduml" Rel(app, redis, "enqueue job parameters", "redis") Rel(worker, redis, "dequeues job parameters", "redis") Rel(worker, app_db, "reads/writes primary data", "psql (5432)") EOB end |