Sha256: 27261389987e51394964c3e5be99454510b087887aa1272f73c2d2afa78915ac

Contents?: true

Size: 1.21 KB

Versions: 18

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

module Sidekiq
  module Extensions
    def self.enable_delay!
      if defined?(::ActiveSupport)
        require "sidekiq/extensions/active_record"
        require "sidekiq/extensions/action_mailer"

        # Need to patch Psych so it can autoload classes whose names are serialized
        # in the delayed YAML.
        Psych::Visitors::ToRuby.prepend(Sidekiq::Extensions::PsychAutoload)

        ActiveSupport.on_load(:active_record) do
          include Sidekiq::Extensions::ActiveRecord
        end
        ActiveSupport.on_load(:action_mailer) do
          extend Sidekiq::Extensions::ActionMailer
        end
      end

      require "sidekiq/extensions/class_methods"
      Module.__send__(:include, Sidekiq::Extensions::Klass)
    end

    module PsychAutoload
      def resolve_class(klass_name)
        return nil if !klass_name || klass_name.empty?
        # constantize
        names = klass_name.split("::")
        names.shift if names.empty? || names.first.empty?

        names.inject(Object) do |constant, name|
          constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
        end
      rescue NameError
        super
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
sidekiq-6.3.1 lib/sidekiq/delay.rb
sidekiq-6.3.0 lib/sidekiq/delay.rb
sidekiq-6.2.2 lib/sidekiq/delay.rb
sidekiq-6.2.1 lib/sidekiq/delay.rb
sidekiq-6.2.0 lib/sidekiq/delay.rb
sidekiq-6.1.3 lib/sidekiq/delay.rb
sidekiq-6.1.2 lib/sidekiq/delay.rb
sidekiq-6.1.1 lib/sidekiq/delay.rb
sidekiq-6.1.0 lib/sidekiq/delay.rb
sidekiq-6.0.7 lib/sidekiq/delay.rb
sidekiq-6.0.6 lib/sidekiq/delay.rb
sidekiq-6.0.5 lib/sidekiq/delay.rb
sidekiq-6.0.4 lib/sidekiq/delay.rb
sidekiq-6.0.3 lib/sidekiq/delay.rb
sidekiq-6.0.2 lib/sidekiq/delay.rb
sidekiq-6.0.1 lib/sidekiq/delay.rb
sidekiq-6.0.0 lib/sidekiq/delay.rb
sidekiq-6.0.0.pre1 lib/sidekiq/delay.rb