class TTY::Prompt::Question::Validation
A class representing question validation.
Constants
- VALIDATORS
Available validator names
Attributes
pattern[R]
Public Class Methods
new(pattern)
click to toggle source
Initialize a Validation
@param [Object] pattern
@return [undefined]
@api private
# File lib/tty/prompt/question/validation.rb, line 22 def initialize(pattern) @pattern = coerce(pattern) end
Public Instance Methods
call(input)
click to toggle source
Test if the input passes the validation
@example
Validation.new(/pattern/) validation.call(input) # => true
@param [Object] input
the input to validate
@return [Boolean]
@api public
# File lib/tty/prompt/question/validation.rb, line 57 def call(input) if pattern.is_a?(String) || pattern.is_a?(Symbol) VALIDATORS.key?(pattern.to_sym) !VALIDATORS[pattern.to_sym].match(input).nil? elsif pattern.is_a?(Regexp) !pattern.match(input).nil? elsif pattern.is_a?(Proc) result = pattern.call(input) result.nil? ? false : result else false end end
coerce(pattern)
click to toggle source
Convert validation into known type.
@param [Object] pattern
@raise [TTY::ValidationCoercion]
raised when failed to convert validation
@api private
# File lib/tty/prompt/question/validation.rb, line 34 def coerce(pattern) case pattern when String, Symbol, Proc pattern when Regexp Regexp.new(pattern.to_s) else raise ValidationCoercion, "Wrong type, got #{pattern.class}" end end