module Lab42::BasicConstraints::Implementation
Constants
- IntConstraints
- StringConstraints
Public Instance Methods
date(default: nil)
click to toggle source
# File lib/lab42/basic_constraints/implementation.rb, line 36 def date default: nil require "date" Constraint.new(:date) do |value| Date.parse(value) rescue false end .set_default default do Date.today.iso8601 end end
date_time(default: nil)
click to toggle source
# File lib/lab42/basic_constraints/implementation.rb, line 46 def date_time default: nil require "date" Constraint.new(:date_time) do |value| DateTime.parse(value) rescue false end .set_default default do DateTime.now.iso8601 end end
int_range(range: nil, min: nil, max: nil)
click to toggle source
# File lib/lab42/basic_constraints/implementation.rb, line 21 def int_range(range: nil, min: nil, max: nil) Constraint::IntConstraint.new(:int_range, range: range, min: min, max: max) end
limited_string(size: nil, min: nil, max: nil)
click to toggle source
# File lib/lab42/basic_constraints/implementation.rb, line 56 def limited_string size: nil, min: nil, max: nil size_range = Helpers::RangeHelper.make_range!(range: size, min: min, max: max) Constraint.new(:limited_string) do |value| String === value && size_range === value.size end end
lowercase_string()
click to toggle source
# File lib/lab42/basic_constraints/implementation.rb, line 63 def lowercase_string Constraint.new :lowercase_string do |value| String === value && value.downcase == value end end
non_negative_int()
click to toggle source
# File lib/lab42/basic_constraints/implementation.rb, line 69 def non_negative_int Constraint::IntConstraint.new(:non_negative_int, min: 0) .set_default(0) end
non_negative_number()
click to toggle source
# File lib/lab42/basic_constraints/implementation.rb, line 74 def non_negative_number Constraint.new :non_negative_number do |value| Numeric === value && !(Complex === value) && value >= 0 end end
positive_int()
click to toggle source
# File lib/lab42/basic_constraints/implementation.rb, line 80 def positive_int Constraint::IntConstraint.new(:positive_int, min: 1) .set_default(1) end
positive_number()
click to toggle source
# File lib/lab42/basic_constraints/implementation.rb, line 85 def positive_number Constraint.new :positive_number do |value| Numeric === value && value > 0 end end
uppercase_string()
click to toggle source
# File lib/lab42/basic_constraints/implementation.rb, line 91 def uppercase_string Constraint.new :uppercase_string do |value| String === value && value.upcase == value end end
year()
click to toggle source
# File lib/lab42/basic_constraints/implementation.rb, line 97 def year Constraint.new(:year) do |value| Integer === value end .set_default do Time.now.utc.year end end
Private Instance Methods
_regex_constraint(name, rgx, size: nil, min: nil, max: nil)
click to toggle source
# File lib/lab42/basic_constraints/implementation.rb, line 109 def _regex_constraint(name, rgx, size: nil, min: nil, max: nil) range_size = Helpers::RangeHelper.make_range(range: size, min: min, max: max) if range_size Constraint.new(name) do |value| String === value && range_size === value.size && rgx === value end else Constraint.new(name) do |value| String === value && rgx === value end end end