Sha256: 450dbb4ba9231597f7f135e5bfd839f9b01fb4f130b89875b696bd23caeb9d98
Contents?: true
Size: 647 Bytes
Versions: 4
Compression:
Stored size: 647 Bytes
Contents
module Zermelo module Records class TypeValidator < ActiveModel::Validator def validate(record) attr_types = record.class.attribute_types attr_types.each_pair do |name, type| value = record.send(name) next if value.nil? valid_type = Zermelo::ALL_TYPES[type] unless valid_type.any? {|t| value.is_a?(t) } count = (valid_type.size > 1) ? 'one of ' : '' type_str = valid_type.collect {|t| t.name }.join(", ") record.errors.add(name, "should be #{count}#{type_str} but is #{value.class.name}") end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems