Class: Recipes::BackgroundProcessor
- Inherits:
-
Rails::AppBuilder
- Object
- Rails::AppBuilder
- Recipes::BackgroundProcessor
- Defined in:
- lib/potassium/recipes/background_processor.rb
Instance Method Summary collapse
- #add_adapters(name) ⇒ Object
- #add_sidekiq ⇒ Object
- #ask ⇒ Object
- #create ⇒ Object
- #edit_procfile(cmd) ⇒ Object
- #install ⇒ Object
- #installed? ⇒ Boolean
- #mount_sidekiq_routes ⇒ Object
Instance Method Details
#add_adapters(name) ⇒ Object
52 53 54 55 56 |
# File 'lib/potassium/recipes/background_processor.rb', line 52 def add_adapters(name) application("config.active_job.queue_adapter = :#{name}") application "config.active_job.queue_adapter = :async", env: "development" application "config.active_job.queue_adapter = :test", env: "test" end |
#add_sidekiq ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/potassium/recipes/background_processor.rb', line 31 def add_sidekiq recipe = self run_action(:install_sidekiq) do gather_gem("sidekiq") recipe.add_adapters("sidekiq") add_readme_section :internal_dependencies, :sidekiq recipe.edit_procfile("bundle exec sidekiq") append_to_file(".env.development", "DB_POOL=25\n") template("../assets/sidekiq.rb.erb", "config/initializers/sidekiq.rb", force: true) copy_file("../assets/sidekiq.yml", "config/sidekiq.yml", force: true) recipe.mount_sidekiq_routes end end |
#ask ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 |
# File 'lib/potassium/recipes/background_processor.rb', line 2 def ask response = if enabled_mailer? info "Note: Emails should be sent on background jobs. We'll install sidekiq" true else answer(:background_processor) do Ask.confirm("Do you want to use Sidekiq for background job processing?") end end set(:background_processor, response) end |
#create ⇒ Object
14 15 16 17 18 |
# File 'lib/potassium/recipes/background_processor.rb', line 14 def create if get(:background_processor) add_sidekiq end end |
#edit_procfile(cmd) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/potassium/recipes/background_processor.rb', line 45 def edit_procfile(cmd) heroku = load_recipe(:heroku) if selected?(:heroku) || heroku.installed? gsub_file('Procfile', /^.*$/m) { |match| "#{match}worker: #{cmd}" } end end |
#install ⇒ Object
20 21 22 23 24 25 |
# File 'lib/potassium/recipes/background_processor.rb', line 20 def install ask heroku = load_recipe(:heroku) set(:heroku, heroku.installed?) create end |
#installed? ⇒ Boolean
27 28 29 |
# File 'lib/potassium/recipes/background_processor.rb', line 27 def installed? gem_exists?(/sidekiq/) end |
#mount_sidekiq_routes ⇒ Object
58 59 60 61 62 63 64 |
# File 'lib/potassium/recipes/background_processor.rb', line 58 def mount_sidekiq_routes insert_into_file "config/routes.rb", after: "Rails.application.routes.draw do\n" do <<-HERE.gsub(/^ {6}/, '') mount Sidekiq::Web => '/queue' HERE end end |