Class: RailsValidationApi::Validator

Inherits:
Object
  • Object
show all
Includes:
RailsParam
Defined in:
lib/rails_validation_api/validator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params, rules) ⇒ Validator

Returns a new instance of Validator.



14
15
16
17
18
# File 'lib/rails_validation_api/validator.rb', line 14

def initialize(params, rules)
  self.params = (defined?(ActionController::Parameters) && params.is_a?(ActionController::Parameters)) ? params.to_unsafe_h : params
  @rules = rules
  @errors = []
end

Instance Attribute Details

#errorsObject (readonly)

Returns the value of attribute errors.



12
13
14
# File 'lib/rails_validation_api/validator.rb', line 12

def errors
  @errors
end

#paramsObject

Returns the value of attribute params.



11
12
13
# File 'lib/rails_validation_api/validator.rb', line 11

def params
  @params
end

Instance Method Details

#validateObject



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/rails_validation_api/validator.rb', line 20

def validate
  return false if @rules.nil? || @rules.empty?

  @rules.each do |rule, _|
    validate_field(rule)
  end
  if @errors.any?
    @errors.each do |error|
      raise RailsValidationApi::Error.new(error[:field], :unprocessable_entity, error[:message])
    end
  end
  nil
end