Class: Karafka::Web::Pro::Loader
- Inherits:
- 
      Object
      
        - Object
- Karafka::Web::Pro::Loader
 
- Defined in:
- lib/karafka/web/pro/loader.rb
Overview
Loader requires and loads all the pro components only when they are needed
Class Method Summary collapse
- 
  
    
      .load_on_late_setup  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    This loads the pro components into memory in case someone required karafka-web prior to the license usage. 
- 
  
    
      .post_setup_all(config)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Runs post setup features configuration operations. 
- 
  
    
      .pre_setup_all(config)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Loads all the Web UI pro components and configures them wherever it is expected. 
Class Method Details
.load_on_late_setup ⇒ Object
This loads the pro components into memory in case someone required karafka-web prior to the license usage. This can happen for users with complex require flows, where Karafka license is not part of the standard flow
In such cases Web may not notice that Karafka should operate in a Pro mode when it is being required via Zeitwerk. In such cases we load Pro components prior to the setup.
| 18 19 20 21 22 23 24 25 26 27 28 29 | # File 'lib/karafka/web/pro/loader.rb', line 18 def load_on_late_setup return if defined?(Karafka::Web::Pro::Commanding) loader = Zeitwerk::Loader.new loader.push_dir( File.join(Karafka::Web.gem_root, 'lib/karafka/web/pro'), namespace: Karafka::Web::Pro ) loader.setup loader.eager_load end | 
.post_setup_all(config) ⇒ Object
Runs post setup features configuration operations
| 58 59 60 61 62 63 64 65 66 67 | # File 'lib/karafka/web/pro/loader.rb', line 58 def post_setup_all(config) Commanding.post_setup(config) Ui::Lib::Branding.post_setup(config) Ui::Lib::Policies.post_setup(config) Ui::Lib::Search.post_setup(config) config.commanding.listeners.each do |listener| ::Karafka::App.monitor.subscribe(listener) end end | 
.pre_setup_all(config) ⇒ Object
Loads all the Web UI pro components and configures them wherever it is expected
| 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | # File 'lib/karafka/web/pro/loader.rb', line 34 def pre_setup_all(config) # Expand the config with commanding configuration config.instance_eval do setting(:commanding, default: Commanding::Config.config) end # Expand UI config with extra search capabilities settings config.ui.instance_eval do setting(:branding, default: Ui::Lib::Branding::Config.config) setting(:policies, default: Ui::Lib::Policies::Config.config) setting(:search, default: Ui::Lib::Search::Config.config) setting :topics do setting :management do # Should we allow users to manage topics (edit config, resize, etc) from the UI setting(:active, default: true) end end end end |