class RubyMotionQuery::Validation
Constants
- DATEISO
- DIGITS
Validation
Regex from jQuery validation -> github.com/jzaefferer/jquery-validation/blob/master/src/core.js#L1094-L1200- HASLOWER
Has at least 1 lowercase letter
- HASUPPER
Has at least 1 uppercase letter
- INTLPHONE
International Phone numbers
- IPV4
Other Fun by www.freeformatter.com/regex-tester.html
- NOT_PRESENCE
is just whitespace
- NUMBER
- STRONGPW
Strong password (at least [8 chars, 1 upper, 1 lower, 1 number])
- TIME
- UKZIP
UK Postal Code regex from: stackoverflow.com/a/7259020/814123
- URL
- USPHONE
7 or 10 digit number, delimiters are spaces, dashes, or periods
- USZIP
Future Password strength validations -> stackoverflow.com/questions/5142103/regex-for-password-strength
Attributes
Public Class Methods
# File lib/project/ruby_motion_query/rmq_validation.rb, line 211 def add_validator(rule, &block) raise(ArgumentError, "add_validator requires a block") if block.nil? @@validation_methods[rule] = block end
# File lib/project/ruby_motion_query/rmq_validation.rb, line 165 def initialize(rule, options={}) @rule = @@validation_methods[rule] raise "RMQ validation error: :#{rule} is not one of the supported validation methods." unless @rule @rule_name = rule @options = options @valid_status = true end
Add tags @example
rmq.validation.valid?('test@test.com', :email) rmq.validation.valid?(53.8, :number) rmq.validation.valid?(54, :digits) rmq.validation.valid?('https://www.tacoland.com', :url) rmq.validation.valid?('2014-03-02', :dateiso) rmq.validation.valid?('', :email, allow_blank: true)
@return [Boolean]
# File lib/project/ruby_motion_query/rmq_validation.rb, line 207 def valid?(value, rule, options={}) Validation.new(rule).valid?(value, options) end
Public Instance Methods
this method shortcuts specific validation rules. As such it should only be added to for universal validation needs. It must be kept as efficient as possible.
# File lib/project/ruby_motion_query/rmq_validation.rb, line 184 def universal_validation_checks (data, options={}) # shortcircuit if debugging return true if RubyMotionQuery::RMQ.debugging? # allow blank data if specified return true if (options[:allow_blank] && (data.nil? || data.empty?)) # allow whitelist data if specified return true if (options[:white_list] && options[:white_list].include?(data)) false end
# File lib/project/ruby_motion_query/rmq_validation.rb, line 173 def valid?(data, options={}) @options = options.merge(@options) # shortcircuit for universal validation parameters return true if universal_validation_checks(data, @options) @valid_status = @rule.call(data, @options) end