module Validate::Constraints
Constants
- HOSTNAME_REGEXP
- UUID_REGEXP
Public Class Methods
define(name, **defaults, &body)
click to toggle source
# File lib/validate/constraints.rb, line 16 def self.define(name, **defaults, &body) if @reserved_names.include?(name) raise Error::ArgumentError, "#{name} is already defined" end @reserved_names[name] = name constraint_class = Constraint.create_class(name, **defaults, &body) Constraints.const_set(Helpers.camelize(name), constraint_class) define_method(name, &constraint_class.method(:new)) module_function(name) end
Public Instance Methods
describe_length()
click to toggle source
# File lib/validate/constraints.rb, line 93 def describe_length if options[:max] == options[:min] options[:max].to_s elsif options[:max].nil? "at least #{options[:min]}" elsif options[:min].nil? "at most #{options[:max]}" else "at least #{options[:min]} and at most #{options[:max]}" end end
describe_presence()
click to toggle source
# File lib/validate/constraints.rb, line 161 def describe_presence case options[:values] when ::Hash "one of #{options[:values].keys}" when ::Range "covered by #{options[:values]}" else "one of #{options[:values]}" end end
describe_unique_attribute()
click to toggle source
# File lib/validate/constraints.rb, line 506 def describe_unique_attribute options[:attribute] || 'values' end