Sha256: 69ad1eecef3ccf0c7a7ae8265a6fca253fb87f98f725f1e5fb92cdbf8283f04c
Contents?: true
Size: 795 Bytes
Versions: 4
Compression:
Stored size: 795 Bytes
Contents
module ActiveRecord module Enum class EnumType < Type::Value # :nodoc: delegate :type, to: :subtype def initialize(name, mapping, subtype) @name = name @mapping = mapping @subtype = subtype end def cast(value) return if value.blank? if valid?(value) value.to_s else assert_valid_value(value) end end def deserialize(value) value&.to_sym end def serialize(value) value.to_s end def valid?(value) mapping.include?(value.to_s) end def assert_valid_value(value) unless value.blank? || valid?(value) raise ArgumentError, "'#{value}' is not a valid #{name}" end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems