Sha256: 19e6e8994df717d1629a3450863e1c800b6cf92376bc9a4bade50f81ed15b843

Contents?: true

Size: 1.32 KB

Versions: 3

Compression:

Stored size: 1.32 KB

Contents

require "rails/generators/base"

module DuodealerApp
  module Generators
    class AddAfterAuthenticateJobGenerator < Rails::Generators::Base
      source_root File.expand_path("../templates", __FILE__)

      hook_for :test_framework, as: :job, in: :rails do |instance, generator|
        instance.invoke generator, [ instance.send(:job_file_name) ]
      end

      def init_after_authenticate_config
        initializer = load_initializer

        after_authenticate_job_config =
          "  config.after_authenticate_job = "\
          "{ job: \"Duodealer::AfterAuthenticateJob\", inline: false }\n"

        inject_into_file(
          "config/initializers/duodealer_app.rb",
          after_authenticate_job_config,
          before: "end"
        )

        unless initializer.include?(after_authenticate_job_config)
          shell.say("Error adding after_authenticate_job to config. Add this line manually: #{after_authenticate_job_config}", :red)
        end
      end

      def add_after_authenticate_job
        template "after_authenticate_job.rb", "app/jobs/#{job_file_name}_job.rb"
      end

      private
        def load_initializer
          File.read(File.join(destination_root, "config/initializers/duodealer_app.rb"))
        end

        def job_file_name
          "duodealer/after_authenticate"
        end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
duodealer_app-1.0.4 lib/generators/duodealer_app/add_after_authenticate_job/add_after_authenticate_job_generator.rb
duodealer_app-1.0.3 lib/generators/duodealer_app/add_after_authenticate_job/add_after_authenticate_job_generator.rb
duodealer_app-1.0.2 lib/generators/duodealer_app/add_after_authenticate_job/add_after_authenticate_job_generator.rb