From 5b52ea75c643f85d1cdba17ef9a89a4e00a57123 Mon Sep 17 00:00:00 2001 From: andrea longhi Date: Fri, 25 Sep 2020 08:19:17 +0200 Subject: [PATCH] Use `Spree::Event.activate_all_subscribers` when available The new method `Spree::Event.activate_all_subscribers` is introduced in Solidus with solidusio/solidus#3758 as a better way to subscribe event subscribers. Under the hood, event subscribers use new interal mappings. Also, we need to keep around the old interface as well until it won't be supported anymore in Solidus. --- lib/solidus_support/engine_extensions.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/solidus_support/engine_extensions.rb b/lib/solidus_support/engine_extensions.rb index 78343ca..c3375da 100644 --- a/lib/solidus_support/engine_extensions.rb +++ b/lib/solidus_support/engine_extensions.rb @@ -36,7 +36,12 @@ def load_solidus_subscribers_from(path) path.glob("**/*_subscriber.rb") do |subscriber_path| require_dependency(subscriber_path) end - Spree::Event.subscribers.each(&:subscribe!) + + if Spree::Event.respond_to?(:activate_all_subscribers) + Spree::Event.activate_all_subscribers + else + Spree::Event.subscribers.each(&:subscribe!) + end end end