class Object

Public Class Methods

value_to_symbol(value) click to toggle source

Safely convert the value to a symbol.

# File lib/enum/enum_adapter.rb, line 54
def value_to_symbol(value)
  case value
  when Symbol
    value
  when String
    value.empty? ? nil : value.intern
  else
    nil
  end
end

Public Instance Methods

__extract_limit_enum(sql_type)
Alias for: extract_limit
__klass_enum()
Alias for: klass
__native_database_types_enum()
__simplified_type_enum(field_type)
Alias for: simplified_type
__type_cast_code_enum(var_name)
Alias for: type_cast_code
__type_cast_enum(value)
Alias for: type_cast
extract_limit(sql_type) click to toggle source
# File lib/enum/enum_adapter.rb, line 78
def extract_limit(sql_type)
  if sql_type =~ /^enum/i
    sql_type.sub(/^enum\('(.+)'\)/i, '\1').split("','").map { |v| v.intern }
  else
    __extract_limit_enum(sql_type)
  end
end
Also aliased as: __extract_limit_enum
klass() click to toggle source

The class for enum is Symbol.

# File lib/enum/enum_adapter.rb, line 22
def klass
  if type == :enum
    Symbol
  else
    __klass_enum
  end
end
Also aliased as: __klass_enum
native_database_types() click to toggle source

:nodoc

# File lib/enum/mysql_adapter.rb, line 15
def native_database_types
  __native_database_types_enum.tap do |types|
    types[:enum] = { :name => 'enum' }
  end
end
Also aliased as: __native_database_types_enum
simplified_type(field_type) click to toggle source

The enum simple type.

# File lib/enum/enum_adapter.rb, line 69
def simplified_type(field_type)
  if field_type =~ /enum/i
    :enum
  else
    __simplified_type_enum(field_type)
  end
end
Also aliased as: __simplified_type_enum
type_cast(value) click to toggle source

Convert to a symbol.

# File lib/enum/enum_adapter.rb, line 32
def type_cast(value)
  if type == :enum
    self.class.value_to_symbol(value)
  else
    __type_cast_enum(value)
  end
end
Also aliased as: __type_cast_enum
type_cast_code(var_name) click to toggle source

Code to convert to a symbol.

# File lib/enum/enum_adapter.rb, line 43
def type_cast_code(var_name)
  if type == :enum
    "#{self.class.name}.value_to_symbol(#{var_name})"
  else
    __type_cast_code_enum(var_name)
  end
end
Also aliased as: __type_cast_code_enum