Module: ActionParamsContract

Defined in:
lib/action_params_contract.rb,
lib/action_params_contract/version.rb,
lib/action_params_contract/configuration.rb,
lib/action_params_contract/dry_extensions.rb,
lib/action_params_contract/request_context.rb,
lib/action_params_contract/params_validator.rb,
lib/action_params_contract/schema_installer.rb,
lib/action_params_contract/contract_generator.rb,
lib/action_params_contract/controller_installer.rb,
lib/action_params_contract/filtered_params_builder.rb,
lib/action_params_contract/dry_extensions/evaluator.rb,
lib/action_params_contract/dry_extensions/schema_dsl.rb,
lib/action_params_contract/dry_extensions/rule_prepend.rb,
lib/action_params_contract/errors/invalid_params_error.rb,
lib/action_params_contract/dry_extensions/default_macro.rb,
lib/action_params_contract/errors/conflicting_root_error.rb,
lib/action_params_contract/errors/invalid_receiver_error.rb,
lib/action_params_contract/dry_extensions/validation_scope.rb,
lib/action_params_contract/errors/unnamed_controller_error.rb,
lib/action_params_contract/errors/default_on_required_error.rb,
lib/action_params_contract/dry_extensions/schema_dsl_prepend.rb,
lib/action_params_contract/errors/duplicate_registration_error.rb,
lib/action_params_contract/dry_extensions/controller_action_dsl.rb,
lib/action_params_contract/errors/missing_request_context_error.rb

Defined Under Namespace

Modules: Contracts, ControllerInstaller, DryExtensions, RequestContext Classes: Configuration, ConflictingRootError, ContractGenerator, DefaultOnRequiredError, DuplicateRegistrationError, FilteredParamsBuilder, InvalidParamsError, InvalidReceiverError, MissingRequestContextError, ParamsValidator, SchemaInstaller, UnnamedControllerError

Constant Summary collapse

FILTERED_IVAR =
:@__dry_params_validatable_filtered
VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.configurationObject



23
24
25
# File 'lib/action_params_contract.rb', line 23

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



27
28
29
# File 'lib/action_params_contract.rb', line 27

def configure
  yield(configuration)
end

.filtered_paramsObject



34
35
36
37
38
39
40
# File 'lib/action_params_contract.rb', line 34

def filtered_params
  controller = RequestContext.current_controller || raise(MissingRequestContextError, :filtered_params)

  return controller.instance_variable_get(FILTERED_IVAR) if controller.instance_variable_defined?(FILTERED_IVAR)

  controller.instance_variable_set(FILTERED_IVAR, FilteredParamsBuilder.call(controller))
end

.params_errorsObject



42
43
44
# File 'lib/action_params_contract.rb', line 42

def params_errors
  Hash(RequestContext.current_controller&.instance_variable_get(ParamsValidator::ERRORS_IVAR))
end

.validate(&block) ⇒ Object



31
# File 'lib/action_params_contract.rb', line 31

def validate(&block)  = SchemaInstaller.call(block, raise_on_failure: false)

.validate!(&block) ⇒ Object



32
# File 'lib/action_params_contract.rb', line 32

def validate!(&block) = SchemaInstaller.call(block, raise_on_failure: true)