class Pakyow::Validator
Public Class Methods
new(key = nil, &block)
click to toggle source
# File lib/pakyow/validator.rb, line 52 def initialize(key = nil, &block) @key = key @validations = [] if block instance_eval(&block) end end
register_validation(validation_object, validation_name)
click to toggle source
# File lib/pakyow/validator.rb, line 38 def register_validation(validation_object, validation_name) @validation_objects[validation_name] = validation_object end
validation_object_for(validation)
click to toggle source
@api private
# File lib/pakyow/validator.rb, line 43 def validation_object_for(validation) @validation_objects[validation] || raise( UnknownValidationError.new_with_message(validation: validation) ) end
Public Instance Methods
any?()
click to toggle source
# File lib/pakyow/validator.rb, line 61 def any? @validations.any? end
call(values, context: nil)
click to toggle source
# File lib/pakyow/validator.rb, line 75 def call(values, context: nil) result = Result.new(@key) @validations.each do |validation, options| unless validation.valid?(values, key: @key, context: context, **options) result.error(validation, options) end end result end
validate(validation_name = nil, **options, &block)
click to toggle source
# File lib/pakyow/validator.rb, line 65 def validate(validation_name = nil, **options, &block) validation_object = if block_given? Validations::Inline.new(validation_name, block) else self.class.validation_object_for(validation_name) end @validations << [validation_object, options] end