Method: New::Validation#validate_class

Defined in:
lib/new/validation.rb

#validate_class(value, klass) ⇒ Object



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/new/validation.rb', line 108

def validate_class value, klass
  begin
    case
    when klass == String  then String(value)
    when klass == Symbol  then validate_symbol value
    when klass == Boolean then validate_boolean value
    when klass == Integer then Float(value).to_i
    when klass == Float   then Float(value)
    when klass == Array   then value.delete_if{ |v| v == nil || v == '' }
    when klass == Hash    then value.delete_if{ |k, v| v == nil || v == '' || v == [] }
    else value
    end
  rescue
    S.ay "`#{value}` cannot be converted to #{klass}", :error
    raise
  end
end