Sha256: 9ed0d85e99c237ad4b233645f7ab134613761f86af2c57625f3db6182c3e8c9b

Contents?: true

Size: 608 Bytes

Versions: 6

Compression:

Stored size: 608 Bytes

Contents

require 'active_support/concern'

module IntegrationPal
  module BaseJob
    extend ActiveSupport::Concern

    included do
      attr_accessor :job

      rescue_from(StandardError) do |exception|
        job.fail(exception)
        raise(exception)
      end

      def setup(active_job)
        @job = IntegrationPal::Job.find(active_job.arguments.first)
        @job.start
        @job
      end

      def teardown(job)
        job.complete
      end

      around_perform do |job, block|
        persisted_job = setup(job)
        block.call
        teardown(persisted_job)
      end
    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
integration_pal-0.2.3 lib/concerns/integration_pal/base_job.rb
integration_pal-0.2.2 lib/concerns/integration_pal/base_job.rb
integration_pal-0.2.1 lib/concerns/integration_pal/base_job.rb
integration_pal-0.2.0 lib/concerns/integration_pal/base_job.rb
integration_pal-0.1.6 lib/concerns/integration_pal/base_job.rb
integration_pal-0.1.5 lib/concerns/integration_pal/base_job.rb