Kern-Plugins, bei denen eine Abspaltung eines zusammengeführten Plugins verwendet wurde

In gewissem Maße können Sie die Logik in bestehenden Klassen ersetzen/erweitern. Dies könnte eine Option sein, um das gebündelte Plugin zu erweitern. Sie würden ein neues Plugin schreiben, das einfach die geänderte Logik hinzufügt. Verwenden Sie Modul-Prepend.

enabled_site_setting :myoverridingplugin_enabled

module ::MyOverridingPlugin
	PLUGIN_NAME = "my-overriding-plugin"

	class Engine < ::Rails::Engine
		engine_name MyOverridingPlugin::PLUGIN_NAME
		isolate_namespace MyOverridingPlugin
	end

	module SomeClassOverrides
		def overriding_method(foo, bar)
			if foo == "something"
				# etwas Eigenes tun
			else
				# dies ruft die ursprüngliche Logik auf
				super(f00, bar)
			end
		end
	end
end

after_initialize do
	SomeClass.prepend(MyOverridingPlugin::SomeClassOverrides)
end

Ich habe diesen Konstruktor verwendet, um bestimmte Controller unter bestimmten Bedingungen einzuschränken.

1 „Gefällt mir“