Module: Checks

Overview

Some argument check methods.

Instance Method Summary collapse

Instance Method Details

#check_boolean(hash) ⇒ Object



21
22
23
24
25
26
27
# File 'app/checks.rb', line 21

def check_boolean(hash)
  hash.each do |key, value|
    raise "invalid #{key}: #{value.nil? ? 'nil' : value}" unless value.is_a?(TrueClass) || value.is_a?(FalseClass)
  end

  hash.size == 1 ? hash.values.first : hash.values
end

#check_enumerable_of(enumerable, clazz) ⇒ Object



45
46
47
48
# File 'app/checks.rb', line 45

def check_enumerable_of(enumerable, clazz)
  check_is_a(enumerable: [Enumerable, enumerable])
  enumerable.each { |value| check_is_a(value: [clazz, value]) }
end

#check_is_a(hash) ⇒ Object



13
14
15
16
17
18
19
# File 'app/checks.rb', line 13

def check_is_a(hash)
  hash.each do |key, (clazz, value)|
    raise "invalid #{key} #{clazz}: #{value.nil? ? 'nil' : value} (#{value.class})" unless value.is_a?(clazz)
  end

  hash.size == 1 ? hash.values.first[1] : hash.values.map { |(_clazz, value)| value }
end

#check_non_empty_string(hash) ⇒ Object



29
30
31
32
33
34
35
# File 'app/checks.rb', line 29

def check_non_empty_string(hash)
  hash.each do |key, value|
    raise "invalid #{key}: #{value.nil? ? 'nil' : value}" unless value.is_a?(String) && !value.empty?
  end

  hash.size == 1 ? hash.values.first : hash.values
end

#check_non_nil(hash) ⇒ Object



5
6
7
8
9
10
11
# File 'app/checks.rb', line 5

def check_non_nil(hash)
  hash.each do |key, value|
    raise "invalid #{key}: #{value.nil? ? 'nil' : value}" if value.nil?
  end

  hash.size == 1 ? hash.values.first : hash.values
end

#check_positive_integer(hash) ⇒ Object



37
38
39
40
41
42
43
# File 'app/checks.rb', line 37

def check_positive_integer(hash)
  hash.each do |key, value|
    raise "invalid #{key}: #{value.nil? ? 'nil' : value}" unless value.is_a?(Integer) && value.positive?
  end

  hash.size == 1 ? hash.values.first : hash.values
end