8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/sidekiq/delay_extensions/generic_job.rb', line 8
def perform(yml)
if !Sidekiq::DelayExtensions.use_generic_proxy
(target, method_name, args) = ::Sidekiq::DelayExtensions::YAML.unsafe_load(yml)
return _perform(target, method_name, *args)
end
(target, method_name, args, kwargs) = ::Sidekiq::DelayExtensions::YAML.unsafe_load(yml)
if target.is_a?(String)
target_klass = target.safe_constantize
if target_klass
target = target_klass
else
fail NameError, "uninitialized constant #{target}. Peforming: #{yml.inspect}"
end
end
has_no_kwargs = kwargs.nil? || kwargs.empty? if has_no_kwargs
if args.is_a?(Array) && args.last.is_a?(Hash) kwargs = args.pop.symbolize_keys
has_no_kwargs = kwargs.empty?
elsif args.is_a?(Hash)
kwargs = args.symbolize_keys
args = []
has_no_kwargs = kwargs.empty?
end
end
if has_no_kwargs
_perform(target, method_name, *args)
else
_perform(target, method_name, *args, **kwargs)
end
end
|