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

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

Returns:

  • (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