Skip to content

Commit a78b93e

Browse files
committed
fix: custom sidekiq class must inherit from interactor class
1 parent 909cb0d commit a78b93e

File tree

1 file changed

+9
-17
lines changed

1 file changed

+9
-17
lines changed

lib/interactor/sidekiq.rb

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ def self.included(base)
2121
# https://github.com/mperham/sidekiq/blob/4.x/lib/sidekiq/extensions/class_methods.rb
2222

2323
module SidekiqWorker
24-
extend ::ActiveSupport::Concern
25-
2624
class Worker
2725
include ::Sidekiq::Worker
2826

@@ -72,26 +70,14 @@ def async_call(context = {})
7270
end
7371
end
7472

75-
included do
76-
class_attribute :sidekiq_worker_class
77-
end
78-
79-
class_methods do
80-
def sidekiq_worker_class(klass)
81-
self.custom_sidekiq_worker_class = klass
82-
end
83-
end
84-
8573
private
8674

8775
def worker_class
8876
return Worker if custom_sidekiq_worker_class.nil?
8977

90-
custom_sidekiq_worker_class.tap do |klass|
91-
unless klass.is_a?(Worker)
92-
raise "#{klass} is not a valid Sidekiq worker class. It must be a subclass of ::Interactor::SidekiqWorker::Worker."
93-
end
94-
end
78+
return custom_sidekiq_worker_class if custom_sidekiq_worker_class < Worker
79+
80+
raise "#{klass} is not a valid Sidekiq worker class. It must be a subclass of ::Interactor::SidekiqWorker::Worker."
9581
end
9682

9783
def handle_context_for_sidekiq(context)
@@ -124,6 +110,8 @@ def handle_sidekiq_schedule_options(context)
124110

125111
module Async
126112
def self.included(base)
113+
class_attribute :sidekiq_worker_class
114+
127115
base.class_eval do
128116
include Interactor
129117

@@ -140,6 +128,10 @@ def call!(context = {})
140128
default_async_call(context)
141129
end
142130

131+
def sidekiq_worker_class(klass)
132+
self.custom_sidekiq_worker_class = klass
133+
end
134+
143135
private
144136

145137
def default_async_call(context)

0 commit comments

Comments
 (0)