병합된 플러그인의 포크가 사용되었던 핵심 플러그인

일정 수준까지 기존 클래스의 로직을 대체하거나 확장할 수 있습니다. 이는 번들된 플러그인을 확장하는 하나의 방법이 될 수 있습니다. 수정된 로직만 추가하는 새로운 플러그인을 작성하면 됩니다. 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"
				# do something custom
			else
				# this will call the original logic
				super(f00, bar)
			end
		end
	end
end

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

저는 이 구성 방법을 사용하여 특정 조건에서 일부 컨트롤러를 제한했습니다.