class Morf::Casters::SymbolCaster

Constants

MAX_SYMBOL_LENGTH

Public Class Methods

cast(value, attr_name, options = {}) click to toggle source
# File lib/morf/casters/symbol_caster.rb, line 4
def self.cast(value, attr_name, options = {})
  if value.is_a?(Symbol)
    value
  elsif value.is_a?(String)
    if value.length > MAX_SYMBOL_LENGTH
      raise Morf::Errors::CastingError, "is too long to be a symbol"
    else
      value.to_sym
    end
  else
    raise Morf::Errors::CastingError, "should be a symbol"
  end
end