マージされたプラグインのフォークが使用されていたコアプラグイン

ある程度、既存のクラスのロジックを置き換えたり拡張したりできます。これはバンドルされたプラグインを拡張するオプションになるかもしれません。変更されたロジックを追加するだけの新しいプラグインを作成します。 module 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"
				# カスタムの処理を行う
			else
				# オリジナルのロジックを呼び出す
				super(f00, bar)
			end
		end
	end
end

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

私はこのコンストラクタを使用して、特定の条件下で一部のコントローラを制限しました。

「いいね!」 1