Class: Karafka::Pro::Loader
- Inherits:
-
Object
- Object
- Karafka::Pro::Loader
- Defined in:
- lib/karafka/pro/loader.rb
Overview
Loader requires and loads all the pro components only when they are needed
Constant Summary collapse
- FORCE_LOADED =
There seems to be a conflict in between using two Zeitwerk instances and it makes lookups for nested namespaces instead of creating them. We require those not to deal with this and then all works as expected
%w[ active_job/dispatcher processing/jobs/consume_non_blocking processing/strategies/base routing/features/base encryption encryption/cipher encryption/setup/config encryption/contracts/config encryption/messages/parser ].freeze
Class Method Summary collapse
-
.post_setup_all(config) ⇒ Object
Runs post setup features configuration operations.
-
.pre_setup_all(config) ⇒ Object
Loads all the pro components and configures them wherever it is expected.
-
.require_all ⇒ Object
Requires all the components without using them anywhere.
Class Method Details
.post_setup_all(config) ⇒ Object
Runs post setup features configuration operations
56 57 58 59 60 61 |
# File 'lib/karafka/pro/loader.rb', line 56 def post_setup_all(config) features.each { |feature| feature.post_setup(config) } # We initialize it here so we don't initialize it during multi-threading work Processing::SubscriptionGroupsCoordinator.instance end |
.pre_setup_all(config) ⇒ Object
Loads all the pro components and configures them wherever it is expected
44 45 46 47 48 49 50 51 |
# File 'lib/karafka/pro/loader.rb', line 44 def pre_setup_all(config) features.each { |feature| feature.pre_setup(config) } reconfigure(config) load_topic_features end |
.require_all ⇒ Object
Requires all the components without using them anywhere
33 34 35 36 37 38 39 |
# File 'lib/karafka/pro/loader.rb', line 33 def require_all FORCE_LOADED.each { |file| require_relative(file) } PRO_LOADER.push_dir(Karafka.core_root.join('pro'), namespace: Karafka::Pro) PRO_LOADER.setup PRO_LOADER.eager_load end |