Sha256: 3c663058b66c3851632ffd917701cb828b7e0209810805f8e82221437e3a3d51

Contents?: true

Size: 1.26 KB

Versions: 15

Compression:

Stored size: 1.26 KB

Contents

module Jets # :nodoc:
  class Generators # :nodoc:
    class JobGenerator < Rails::Generators::NamedBase # :nodoc:
      desc "This generator creates an Jets job file at app/jobs"

      class_option :name, aliases: :n, default: "perform", desc: "The method name for job"
      class_option :type, aliases: :t, default: "scheduled", desc: "The job event type: dynamodb iot kinesis log rule s3 scheduled sns sqs"

      def self.default_generator_root
        __dir__
      end

      def self.banner
        "jets generate job #{self.arguments.map(&:usage).join(' ')} [options]"
      end

      def create_job_file
        template "event_types/#{options[:type]}.rb", File.join("app/jobs", class_path, "#{file_name}_job.rb")

        in_root do
          if behavior == :invoke && !File.exist?(application_job_file_name)
            template "application_job.rb", application_job_file_name
          end
        end
      end

      private
        def file_name
          @_file_name ||= super.sub(/_job\z/i, "")
        end

        def application_job_file_name
          @application_job_file_name ||= if mountable_engine?
            "app/jobs/#{namespaced_path}/application_job.rb"
          else
            "app/jobs/application_job.rb"
          end
        end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
jets-5.0.13 lib/jets/generators/job/job_generator.rb
jets-5.0.12 lib/jets/generators/job/job_generator.rb
jets-5.0.11 lib/jets/generators/job/job_generator.rb
jets-5.0.10 lib/jets/generators/job/job_generator.rb
jets-5.0.9 lib/jets/generators/job/job_generator.rb
jets-5.0.8 lib/jets/generators/job/job_generator.rb
jets-5.0.7 lib/jets/generators/job/job_generator.rb
jets-5.0.6 lib/jets/generators/job/job_generator.rb
jets-5.0.5 lib/jets/generators/job/job_generator.rb
jets-5.0.4 lib/jets/generators/job/job_generator.rb
jets-5.0.3 lib/jets/generators/job/job_generator.rb
jets-5.0.2 lib/jets/generators/job/job_generator.rb
jets-5.0.1 lib/jets/generators/job/job_generator.rb
jets-5.0.0 lib/jets/generators/job/job_generator.rb
jets-5.0.0.beta1 lib/jets/generators/job/job_generator.rb