Sha256: 841705760b321851f27c3d17e9b838faa7e501ce2f1f1b7b5d23ae74de4b544a

Contents?: true

Size: 1.49 KB

Versions: 4

Compression:

Stored size: 1.49 KB

Contents

# frozen_string_literal: true

require 'active_support'
require 'active_support/core_ext'

require 'sneakers'
require 'advanced_sneakers_activejob/workers_registry'
Sneakers::Worker.send(:remove_const, :Classes)
Sneakers::Worker::Classes = AdvancedSneakersActiveJob::WorkersRegistry.new

require 'advanced_sneakers_activejob/version'
require 'advanced_sneakers_activejob/content_type'
require 'advanced_sneakers_activejob/exponential_backoff'
require 'advanced_sneakers_activejob/handler'
require 'advanced_sneakers_activejob/configuration'
require 'advanced_sneakers_activejob/errors'
require 'advanced_sneakers_activejob/publisher'
require 'advanced_sneakers_activejob/active_job_patch'
require 'advanced_sneakers_activejob/railtie' if defined?(::Rails::Railtie)
require 'active_job/queue_adapters/advanced_sneakers_adapter'

# Advanced Sneakers adapter for ActiveJob
module AdvancedSneakersActiveJob
  class << self
    def config
      @config ||= Configuration.new
    end

    def configure
      yield config
    end

    def define_consumer(queue_name:)
      @consumers ||= {}

      @consumers[queue_name] ||= begin
        klass = Class.new(ActiveJob::QueueAdapters::AdvancedSneakersAdapter::JobWrapper)
        klass.include Sneakers::Worker
        const_set([queue_name, 'queue_consumer'].join('_').classify, klass)
        klass.from_queue(queue_name, AdvancedSneakersActiveJob.config.sneakers)
      end
    end

    def publisher
      @publisher ||= AdvancedSneakersActiveJob::Publisher.new
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
advanced-sneakers-activejob-0.2.2 lib/advanced_sneakers_activejob.rb
advanced-sneakers-activejob-0.2.1 lib/advanced_sneakers_activejob.rb
advanced-sneakers-activejob-0.2.0 lib/advanced_sneakers_activejob.rb
advanced-sneakers-activejob-0.1.0 lib/advanced_sneakers_activejob.rb