class DTOSchema::Validators::FieldValidator
Public Class Methods
new(schema, name, required, type, check)
click to toggle source
# File lib/dto_schema/validators.rb, line 127 def initialize(schema, name, required, type, check) raise ArgumentError, "'#{name}' cannot have checks as it is not a primitive" unless check.empty? || Parse::primitive?(type) @schema, @name, @required, @type, @check = schema, name, required, type, check @type_validator = Parse::parse_validator type, @schema end
Public Instance Methods
resolve()
click to toggle source
# File lib/dto_schema/validators.rb, line 151 def resolve @type_validator.resolve @check.each { |check| check.resolve } self end
valid?(data)
click to toggle source
# File lib/dto_schema/validators.rb, line 147 def valid? (data) validate(data).empty? end
valid_structure?(data)
click to toggle source
# File lib/dto_schema/validators.rb, line 142 def valid_structure? (data) return !@required if data.nil? @type_validator.valid_structure? data end
validate(data)
click to toggle source
# File lib/dto_schema/validators.rb, line 133 def validate (data) return ["Cannot be null"] if @required && data.nil? return [] if !@required && data.nil? return @type_validator.validate data unless Parse::primitive? @type type_check = @type_validator.validate data return type_check unless type_check.empty? @check.collect { |check| check.validate data }.flatten(1) end