module Pakyow::Validations::Length

Validates that the value is of an expected length.

@api public

Public Class Methods

message(minimum: nil, maximum: nil, **) click to toggle source
# File lib/pakyow/validations/length.rb, line 11
def self.message(minimum: nil, maximum: nil, **)
  if minimum && maximum
    "must have between #{minimum} and #{maximum} characters"
  elsif minimum
    "must have more than #{minimum} #{wording(minimum)}"
  elsif maximum
    "must have less than #{maximum} #{wording(maximum)}"
  end
end
valid?(value, minimum: nil, maximum: nil, **) click to toggle source
# File lib/pakyow/validations/length.rb, line 21
def self.valid?(value, minimum: nil, maximum: nil, **)
  unless minimum.nil?
    return false if value.length < minimum
  end

  unless maximum.nil?
    return false if value.length > maximum
  end

  true
end
wording(n) click to toggle source
# File lib/pakyow/validations/length.rb, line 33
def self.wording(n)
  n == 1 ? "character" : "characters"
end