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