Module: Pakyow::Validations::Length

Defined in:
lib/pakyow/validations/length.rb

Overview

Validates that the value is of an expected length.

Class Method Summary collapse

Class Method Details

.message(minimum: nil, maximum: nil) ⇒ Object



11
12
13
14
15
16
17
18
19
# 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) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
24
25
26
27
28
29
30
31
# 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) ⇒ Object



33
34
35
# File 'lib/pakyow/validations/length.rb', line 33

def self.wording(n)
  n == 1 ? "character" : "characters"
end