Class: RailsTemplate18f::Generators::SidekiqGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Base
Defined in:
lib/generators/rails_template18f/sidekiq/sidekiq_generator.rb

Instance Method Summary collapse

Instance Method Details

#configure_active_jobObject



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_runnerObject



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"), "    {\ntype      = \"worker\"\ninstances = var.worker_instances\nmemory    = var.worker_memory\ncommand   = \"bundle exec sidekiq\"\n    },\n", after: "processes = [\n"
end

#configure_sidekiq_uiObject



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 "    if Rails.env.development?\n      mount Sidekiq::Web => \"/sidekiq\"\n    end\n  EOR\nend\n"

#install_gemObject



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_redisObject



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", "\n    # queue for sidekiq jobs\n    brew \"redis\"\n  EOB\n  insert_into_file \"README.md\", indent(\"* [redis](https://redis.io/)\\n\"), after: /\\* Install homebrew dependencies: `brew bundle`\\n/\nend\n"

#update_boundary_diagramObject



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("    Container(worker, \"<&layers> Sidekiq workers\", \"Ruby \#{ruby_version}, Sidekiq\", \"Perform background work and data processing\")\n    ContainerDb(redis, \"Redis Database\", \"AWS ElastiCache (Redis)\", \"Background job queue\")\n  EOB\n  insert_into_file boundary_filename, <<~EOB, before: \"@enduml\"\n    Rel(app, redis, \"enqueue job parameters\", \"redis\")\n    Rel(worker, redis, \"dequeues job parameters\", \"redis\")\n    Rel(worker, app_db, \"reads/writes primary data\", \"psql (5432)\")\n  EOB\nend\n", 16), after: /ContainerDb\(app_db.*$\n/