From 587eb0feb60fb421ebbab01b25e38239672edc2b Mon Sep 17 00:00:00 2001 From: Eric Hayes Date: Wed, 10 May 2017 07:39:39 -0700 Subject: [PATCH 1/3] Allow Vmdb::Plugins to work through code reloads in development. --- config/application.rb | 5 +---- lib/vmdb/plugins.rb | 13 +++++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/config/application.rb b/config/application.rb index c10fb0bae18..fd19217169b 100644 --- a/config/application.rb +++ b/config/application.rb @@ -115,10 +115,7 @@ class Application < Rails::Application # Because this is easy to mess up, keep your initializers in order. # register plugins even before loading settings, as plugins can bring their own settings initializer :register_vmdb_plugins, :before => :load_vmdb_settings do - Rails.application.railties.each do |railtie| - next unless railtie.class.name.start_with?("ManageIQ::Providers::") || railtie.try(:vmdb_plugin?) - Vmdb::Plugins.instance.register_vmdb_plugin(railtie) - end + Vmdb::Plugins.instance.register_from_railties end initializer :load_vmdb_settings, :before => :load_config_initializers do diff --git a/lib/vmdb/plugins.rb b/lib/vmdb/plugins.rb index f9a593929cc..fab392a1cbb 100644 --- a/lib/vmdb/plugins.rb +++ b/lib/vmdb/plugins.rb @@ -11,6 +11,19 @@ def initialize @vmdb_plugins = [] end + def vmdb_plugins + @vmdb_plugins.empty? ? register_from_railties : @vmdb_plugins + end + + def register_from_railties + Rails.application.railties.each do |railtie| + next unless railtie.class.name.start_with?("ManageIQ::Providers::") || railtie.try(:vmdb_plugin?) + register_vmdb_plugin(railtie) + end + + @vmdb_plugins + end + def register_vmdb_plugin(engine) @vmdb_plugins << engine From 307b4c00855a26fdad6f0cd8296589cc349d044f Mon Sep 17 00:00:00 2001 From: Eric Hayes Date: Wed, 10 May 2017 11:38:39 -0700 Subject: [PATCH 2/3] =?UTF-8?q?Don=E2=80=99t=20need=20the=20attr=5Freader?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/vmdb/plugins.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/vmdb/plugins.rb b/lib/vmdb/plugins.rb index fab392a1cbb..07088ea9e7c 100644 --- a/lib/vmdb/plugins.rb +++ b/lib/vmdb/plugins.rb @@ -2,7 +2,6 @@ module Vmdb class Plugins include Singleton - attr_reader :vmdb_plugins attr_reader :registered_automate_domains def initialize From 81b44aa0e935424a8689ee4ccdb6739b69adc904 Mon Sep 17 00:00:00 2001 From: Eric Hayes Date: Wed, 10 May 2017 11:40:43 -0700 Subject: [PATCH 3/3] Rename register_from_railties to register_vmdb_plugins --- config/application.rb | 2 +- lib/vmdb/plugins.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/application.rb b/config/application.rb index fd19217169b..9aca2d5c935 100644 --- a/config/application.rb +++ b/config/application.rb @@ -115,7 +115,7 @@ class Application < Rails::Application # Because this is easy to mess up, keep your initializers in order. # register plugins even before loading settings, as plugins can bring their own settings initializer :register_vmdb_plugins, :before => :load_vmdb_settings do - Vmdb::Plugins.instance.register_from_railties + Vmdb::Plugins.instance.register_vmdb_plugins end initializer :load_vmdb_settings, :before => :load_config_initializers do diff --git a/lib/vmdb/plugins.rb b/lib/vmdb/plugins.rb index 07088ea9e7c..2a4be2caab0 100644 --- a/lib/vmdb/plugins.rb +++ b/lib/vmdb/plugins.rb @@ -11,10 +11,10 @@ def initialize end def vmdb_plugins - @vmdb_plugins.empty? ? register_from_railties : @vmdb_plugins + @vmdb_plugins.empty? ? register_vmdb_plugins : @vmdb_plugins end - def register_from_railties + def register_vmdb_plugins Rails.application.railties.each do |railtie| next unless railtie.class.name.start_with?("ManageIQ::Providers::") || railtie.try(:vmdb_plugin?) register_vmdb_plugin(railtie)