class GraphQL::Schema::Validator::FormatValidator
Use this to assert that string values match (or don’t match) the given RegExp.
Examples
Example: requiring input to match a pattern
argument :handle, String, required: true, validates: { format: { with: /\A[a-z0-9_]+\Z/ } }
Example: reject inputs that match a pattern
argument :word_that_doesnt_begin_with_a_vowel, String, required: true, validates: { format: { without: /\A[aeiou]/ } } # It's pretty hard to come up with a legitimate use case for `without:`
Public Class Methods
# File lib/graphql/schema/validator/format_validator.rb, line 35 def initialize( with: nil, without: nil, message: "%{validated} is invalid", **default_options ) @with_pattern = with @without_pattern = without @message = message super(**default_options) end
Parameters
-
with(RegExp, nil) -
without(Regexp, nil) -
message(String)
Calls superclass method
GraphQL::Schema::Validator::new
Public Instance Methods
# File lib/graphql/schema/validator/format_validator.rb, line 47 def validate(_object, _context, value) if permitted_empty_value?(value) # Do nothing elsif value.nil? || (@with_pattern && !value.match?(validation_parameter(@with_pattern))) || (@without_pattern && value.match?(validation_parameter(@without_pattern))) validation_parameter(@message) end end