Module: TypedModel::Validators

Defined in:
lib/typed_model/validators.rb

Class Method Summary collapse

Class Method Details

.assert_integer(v) ⇒ Object



39
40
41
# File 'lib/typed_model/validators.rb', line 39

def assert_integer(v)
  :invalid if Types.integer(v).nil?
end

.assert_not_blank(v) ⇒ Object

Checks that value contains at least one non-whitespace character. Semantically different from assert_required which only checks empty/nil.



27
28
29
# File 'lib/typed_model/validators.rb', line 27

def assert_not_blank(v)
  :required unless /\S/.match?(v.to_s)
end

.assert_not_nil(v) ⇒ Object



31
32
33
# File 'lib/typed_model/validators.rb', line 31

def assert_not_nil(v)
  :required_not_nil if v.nil?
end

.assert_required(v) ⇒ Object



21
22
23
# File 'lib/typed_model/validators.rb', line 21

def assert_required(v)
  :required if v.nil? || (v.respond_to?(:empty?) && v.empty?)
end

.assert_string(v) ⇒ Object



35
36
37
# File 'lib/typed_model/validators.rb', line 35

def assert_string(v)
  :invalid if Types.string(v).nil?
end

.assert_timestamp(v) ⇒ Object



17
18
19
# File 'lib/typed_model/validators.rb', line 17

def assert_timestamp(v)
  :invalid if Types.timestamp(v).nil?
end

.recognized?(sym) ⇒ Boolean

Returns:

  • (Boolean)


7
8
9
# File 'lib/typed_model/validators.rb', line 7

def recognized?(sym)
  respond_to?(:"assert_#{sym}")
end

.validate(sym, value) ⇒ Object



11
12
13
14
15
# File 'lib/typed_model/validators.rb', line 11

def validate(sym, value)
  method_name = :"assert_#{sym}"
  raise "Unrecognized validation '#{sym}'" unless respond_to?(method_name)
  send(method_name, value)
end