Module: Interactor::Validation::Validates::InstanceMethods
- Defined in:
- lib/interactor/validation/validates.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.prepended(base) ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 |
# File 'lib/interactor/validation/validates.rb', line 119 def self.prepended(base) # Include all validator modules base.include(Validators::Presence) base.include(Validators::Numeric) base.include(Validators::Boolean) base.include(Validators::Format) base.include(Validators::Length) base.include(Validators::Inclusion) base.include(Validators::Hash) base.include(Validators::Array) end |
Instance Method Details
#errors ⇒ Object
131 132 133 |
# File 'lib/interactor/validation/validates.rb', line 131 def errors @errors ||= Errors.new(halt_checker: -> { validation_config(:halt) }) end |
#run_validations! ⇒ Object
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
# File 'lib/interactor/validation/validates.rb', line 135 def run_validations! param_errors = false begin # Run parameter validations if self.class._validations self.class._validations.each do |param, rules| value = context.respond_to?(param) ? context.public_send(param) : nil validate_param(param, value, rules) end param_errors = errors.any? end # Run custom validations if defined # Skip if param validations failed and skip_validate is true validate! if respond_to?(:validate!, true) && !(param_errors && validation_config(:skip_validate)) rescue HaltValidation # Validation halted on first error - fall through to fail context end # Fail context if any errors exist context.fail!(errors: format_errors) if errors.any? end |