Sha256: 8293964d886642e117dfc8e1a1007468f3ba2b0abfb079e577bcca8c4848a079

Contents?: true

Size: 1.24 KB

Versions: 2

Compression:

Stored size: 1.24 KB

Contents

require_relative "base"

module Suspenders
  class JobsGenerator < Generators::Base
    def add_jobs_gem
      gem "sidekiq"
      Bundler.with_clean_env { run "bundle install" }
    end

    def configure_foreman
      append_to_file(
        'Procfile',
        "worker: bundle exec sidekiq -C config/sidekiq.yml\n"
      )
    end

    def configure_sidekiq
      copy_file(
        "config_sidekiq.yml",
        "config/sidekiq.yml"
      )
    end

    def configure_sidekiq_web
      inject_into_file(
        "config/routes.rb",
        "require 'sidekiq/web'\n\n",
        before: "Rails.application.routes.draw do\n"
      )
      inject_into_file(
        "config/routes.rb",
        "  mount Sidekiq::Web => '/sidekiq'\n",
        after: "Rails.application.routes.draw do\n"
      )
      warn "Sidekiq web is public! Read https://github.com/mperham/sidekiq/wiki/Monitoring to learn how to add authentication"
    end

    def configure_sidekiq_test
      copy_file(
        "spec_support_sidekiq.rb",
        "spec/support/sidekiq.rb"
      )
    end

    def configure_active_job
      inject_into_file(
        "config/application.rb",
        "\n    config.active_job.queue_adapter = :sidekiq\n",
        before: "\n  end",
      )
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
welaika-suspenders-3.0 lib/suspenders/generators/jobs_generator.rb
welaika-suspenders-2.36 lib/suspenders/generators/jobs_generator.rb