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.



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

def initialize(params, rules)
  self.params = 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.



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

def errors
  @errors
end

#paramsObject

Returns the value of attribute params.



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

def params
  @params
end

Instance Method Details

#validateObject



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

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

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