Class: ActiveRecord::ConnectionAdapters::Column

Inherits:
Object
  • Object
show all
Defined in:
lib/activerecord_enum.rb

Instance Method Summary collapse

Instance Method Details

#enum?Boolean

Returns:

  • (Boolean)


91
92
93
# File 'lib/activerecord_enum.rb', line 91

def enum?
  type == :enum
end

#extract_default_with_enum(default) ⇒ Object



79
80
81
82
83
84
85
# File 'lib/activerecord_enum.rb', line 79

def extract_default_with_enum default
  if type == :set
    default.split "," if default.present?
  else
    extract_default default
  end
end

#extract_limit_with_enum(field_type) ⇒ Object



71
72
73
74
75
76
77
# File 'lib/activerecord_enum.rb', line 71

def extract_limit_with_enum field_type
  if field_type =~ /(?:enum|set)\(([^)]+)\)/i
    $1.scan( /'([^']*)'/ ).flatten
  else
    extract_limit field_type
  end
end

#initialize_with_enum(name, default, sql_type = nil, *args) ⇒ Object Also known as: initialize



54
55
56
57
58
59
# File 'lib/activerecord_enum.rb', line 54

def initialize_with_enum name, default, sql_type=nil, *args
  initialize_without_enum name, default, sql_type, *args
  @type = simplified_type_with_enum sql_type
  @limit = extract_limit_with_enum sql_type
  @default = extract_default_with_enum default
end

#set?Boolean

Returns:

  • (Boolean)


87
88
89
# File 'lib/activerecord_enum.rb', line 87

def set?
  type == :set
end

#simplified_type_with_enum(field_type) ⇒ Object



63
64
65
66
67
68
69
# File 'lib/activerecord_enum.rb', line 63

def simplified_type_with_enum field_type
  if field_type =~ /enum|set/i
    $&.to_sym
  else
    simplified_type field_type
  end
end