Module: AttrValidator::ArgsValidator

Defined in:
lib/attr_validator/args_validator.rb

Overview

Helper class for arguments validation

Defined Under Namespace

Classes: ArgError

Class Method Summary collapse

Class Method Details

.block_given!(block) ⇒ Object

Checks that specified block is given

Parameters:

  • block

    some block



112
113
114
115
116
# File 'lib/attr_validator/args_validator.rb', line 112

def block_given!(block)
  unless block
    raise ArgError, "Block should be given"
  end
end

.has_key!(hash, key) ⇒ Object

Checks that specifid hash has a specified key

Parameters:

  • hash

    some hash

  • key

    hash’s key



91
92
93
94
95
# File 'lib/attr_validator/args_validator.rb', line 91

def has_key!(hash, key)
  unless hash.has_key?(key)
    raise ArgError, "#{hash} should has #{key} key"
  end
end

.has_only_allowed_keys!(hash, keys, obj_name) ⇒ Object



103
104
105
106
107
108
# File 'lib/attr_validator/args_validator.rb', line 103

def has_only_allowed_keys!(hash, keys, obj_name)
  remaining_keys = hash.keys - keys
  unless remaining_keys.empty?
    raise ArgError, "#{obj_name} has unacceptable options #{remaining_keys}"
  end
end

.is_array!(obj, obj_name) ⇒ Object

Checks that specifid obj is an Array

Parameters:

  • obj

    some object

  • obj_name

    object’s name, used to clarify error causer in exception



37
38
39
40
41
# File 'lib/attr_validator/args_validator.rb', line 37

def is_array!(obj, obj_name)
  unless obj.is_a?(Array)
    raise ArgError, "#{obj_name} should be an Array"
  end
end

.is_boolean!(obj, obj_name) ⇒ Object

Checks that specifid obj is a boolean

Parameters:

  • obj

    some object

  • obj_name

    object’s name, used to clarify error causer in exception



19
20
21
22
23
# File 'lib/attr_validator/args_validator.rb', line 19

def is_boolean!(obj, obj_name)
  if !obj.is_a?(TrueClass) && !obj.is_a?(FalseClass)
    raise ArgError, "#{obj_name} should be a Boolean"
  end
end

.is_class_or_symbol!(obj, obj_name) ⇒ Object

Checks that specifid obj is a symbol or class

Parameters:

  • obj

    some object

  • obj_name

    object’s name, used to clarify error causer in exception



73
74
75
76
77
# File 'lib/attr_validator/args_validator.rb', line 73

def is_class_or_symbol!(obj, obj_name)
  if !obj.is_a?(Symbol) && !obj.is_a?(Class)
    raise ArgError, "#{obj_name} should be a Symbol or Class"
  end
end

.is_hash!(obj, obj_name) ⇒ Object

Checks that specifid obj is a Hash

Parameters:

  • obj

    some object

  • obj_name

    object’s name, used to clarify error causer in exception



46
47
48
49
50
# File 'lib/attr_validator/args_validator.rb', line 46

def is_hash!(obj, obj_name)
  unless obj.is_a?(Hash)
    raise ArgError, "#{obj_name} should be a Hash"
  end
end

.is_integer!(obj, obj_name) ⇒ Object

Checks that specifid obj is an integer

Parameters:

  • obj

    some object

  • obj_name

    object’s name, used to clarify error causer in exception



28
29
30
31
32
# File 'lib/attr_validator/args_validator.rb', line 28

def is_integer!(obj, obj_name)
  unless obj.is_a?(Integer)
    raise ArgError, "#{obj_name} should be an Integer"
  end
end

.is_integer_or_float!(obj, obj_name) ⇒ Object

Checks that specifid obj is an integer or float

Parameters:

  • obj

    some object

  • obj_name

    object’s name, used to clarify error causer in exception



55
56
57
58
59
# File 'lib/attr_validator/args_validator.rb', line 55

def is_integer_or_float!(obj, obj_name)
  if !obj.is_a?(Integer) && !obj.is_a?(Float)
    raise ArgError, "#{obj_name} should be an Integer or Float"
  end
end

.is_string_or_regexp!(obj, obj_name) ⇒ Object

Checks that specifid obj is a string or regexp

Parameters:

  • obj

    some object

  • obj_name

    object’s name, used to clarify error causer in exception



64
65
66
67
68
# File 'lib/attr_validator/args_validator.rb', line 64

def is_string_or_regexp!(obj, obj_name)
  if !obj.is_a?(String) && !obj.is_a?(Regexp)
    raise ArgError, "#{obj_name} should be a String or Regexp"
  end
end

.is_symbol!(obj, obj_name) ⇒ Object

Checks that specifid obj is a symbol

Parameters:

  • obj

    some object

  • obj_name

    object’s name, used to clarify error causer in exception



10
11
12
13
14
# File 'lib/attr_validator/args_validator.rb', line 10

def is_symbol!(obj, obj_name)
  unless obj.is_a?(Symbol)
    raise ArgError, "#{obj_name} should be a Symbol"
  end
end

.is_symbol_or_block!(obj, obj_name) ⇒ Object

Checks that specifid obj is a symbol or block

Parameters:

  • obj

    some object

  • obj_name

    object’s name, used to clarify error causer in exception



82
83
84
85
86
# File 'lib/attr_validator/args_validator.rb', line 82

def is_symbol_or_block!(obj, obj_name)
  if !obj.is_a?(Symbol) && !obj.is_a?(Proc)
    raise ArgError, "#{obj_name} should be a Symbol or Proc"
  end
end

.not_nil!(obj, obj_name) ⇒ Object



97
98
99
100
101
# File 'lib/attr_validator/args_validator.rb', line 97

def not_nil!(obj, obj_name)
  if obj.nil?
    raise ArgError, "#{obj_name} can't be nil"
  end
end