mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
Merge pull request #1778 from hundredwatt/optional_extension_loading
Optional extension loading
This commit is contained in:
commit
8736c512a0
3 changed files with 22 additions and 1 deletions
|
@ -36,4 +36,4 @@ module Sidekiq
|
|||
end
|
||||
end
|
||||
|
||||
Module.__send__(:include, Sidekiq::Extensions::Klass)
|
||||
Module.__send__(:include, Sidekiq::Extensions::Klass) unless defined?(::Rails)
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
module Sidekiq
|
||||
def self.hook_rails!
|
||||
return if defined?(@delay_removed)
|
||||
|
||||
ActiveSupport.on_load(:active_record) do
|
||||
include Sidekiq::Extensions::ActiveRecord
|
||||
end
|
||||
|
@ -7,12 +9,16 @@ module Sidekiq
|
|||
ActiveSupport.on_load(:action_mailer) do
|
||||
extend Sidekiq::Extensions::ActionMailer
|
||||
end
|
||||
|
||||
Module.__send__(:include, Sidekiq::Extensions::Klass)
|
||||
end
|
||||
|
||||
# Removes the generic aliases which MAY clash with names of already
|
||||
# created methods by other applications. The methods `sidekiq_delay`,
|
||||
# `sidekiq_delay_for` and `sidekiq_delay_until` can be used instead.
|
||||
def self.remove_delay!
|
||||
@delay_removed = true
|
||||
|
||||
[Extensions::ActiveRecord,
|
||||
Extensions::ActionMailer,
|
||||
Extensions::Klass].each do |mod|
|
||||
|
|
|
@ -100,6 +100,21 @@ class TestExtensions < Sidekiq::Test
|
|||
def queue_size(name='default')
|
||||
Sidekiq::Queue.new(name).size
|
||||
end
|
||||
|
||||
it 'allows removing of the #delay methods' do
|
||||
Sidekiq.remove_delay!
|
||||
assert_equal 0, queue_size
|
||||
assert_raises NoMethodError do
|
||||
SomeModule.delay.doit(Date.today)
|
||||
end
|
||||
|
||||
Sidekiq.instance_eval { remove_instance_variable :@delay_removed }
|
||||
# Reload modified modules
|
||||
load 'sidekiq/extensions/action_mailer.rb'
|
||||
load 'sidekiq/extensions/active_record.rb'
|
||||
load 'sidekiq/extensions/generic_proxy.rb'
|
||||
load 'sidekiq/extensions/class_methods.rb'
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue