diff --git a/lib/sidekiq/delay.rb b/lib/sidekiq/delay.rb index a0b9c15a..8abfaff7 100644 --- a/lib/sidekiq/delay.rb +++ b/lib/sidekiq/delay.rb @@ -24,7 +24,7 @@ module Sidekiq module PsychAutoload def resolve_class(klass_name) - return klass_name unless klass_name + return nil if !klass_name || klass_name.empty? # constantize names = klass_name.split('::') names.shift if names.empty? || names.first.empty? diff --git a/test/test_extensions.rb b/test/test_extensions.rb index 8d2750e2..de1399a7 100644 --- a/test/test_extensions.rb +++ b/test/test_extensions.rb @@ -110,6 +110,11 @@ class TestExtensions < Sidekiq::Test assert_equal 1, q.size end + it 'allows Psych to serialize anonymous structs' do + obj = Struct.new(:attribute).new(my: 'data') + + assert_equal obj.attribute, Psych.load(Psych.dump(obj)).attribute + end end end