From 61b3d878d690506b17313ff1745d819e9875eb63 Mon Sep 17 00:00:00 2001 From: Earlopain <14981592+Earlopain@users.noreply.github.com> Date: Fri, 8 Nov 2024 16:57:24 +0100 Subject: [PATCH] Correctly remove the buildin rails adapter (#23) `defined?` for a string literal is always truthy, same as for symbols. `defined?(ActiveJob::QueueAdapters::SneakersAdapter)` would work as an alternative. ```rb module ActiveJob module QueueAdapters # Adapter removed from rails end end module ActiveJob module QueueAdapters remove_const(:SneakersAdapter) if defined?("::#{name}::SneakersAdapter") end end ``` test.rb:10:in `remove_const': constant ActiveJob::QueueAdapters::SneakersAdapter not defined (NameError) --- lib/active_job/queue_adapters/sneakers_adapter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/active_job/queue_adapters/sneakers_adapter.rb b/lib/active_job/queue_adapters/sneakers_adapter.rb index e716084..501431d 100644 --- a/lib/active_job/queue_adapters/sneakers_adapter.rb +++ b/lib/active_job/queue_adapters/sneakers_adapter.rb @@ -2,7 +2,7 @@ module ActiveJob module QueueAdapters # Explicitly remove the implementation existing in older Rails versions'. - remove_const(:SneakersAdapter) if defined?("::#{name}::SneakersAdapter") + remove_const(:SneakersAdapter) if const_defined?(:SneakersAdapter) # = Sneakers adapter for Active Job #