Module: ActionParamsContract::ControllerInstaller
- Defined in:
- lib/action_params_contract/controller_installer.rb
Constant Summary collapse
- INSTALLED_FLAG =
:@__dry_params_validatable_installed
Class Method Summary collapse
- .install(controller_class, schema_name, raise_on_failure:) ⇒ Object
- .installed?(controller_class) ⇒ Boolean
Class Method Details
.install(controller_class, schema_name, raise_on_failure:) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/action_params_contract/controller_installer.rb', line 8 def install(controller_class, schema_name, raise_on_failure:) controller_class.define_method(:_dry_params_validatable_around) do |&action| RequestContext.around(self) do ParamsValidator.call(self, schema_name, raise_on_failure:) action.call end end controller_class.around_action :_dry_params_validatable_around controller_class.instance_variable_set(INSTALLED_FLAG, true) end |
.installed?(controller_class) ⇒ Boolean
19 20 21 22 23 |
# File 'lib/action_params_contract/controller_installer.rb', line 19 def installed?(controller_class) controller_class.ancestors.any? do |ancestor| ancestor.is_a?(Class) && ancestor.instance_variable_defined?(INSTALLED_FLAG) end end |