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)


48
49
50
# File 'lib/activerecord_enum.rb', line 48

def enum?
  type == :enum
end

#extract_default_with_enum(default) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/activerecord_enum.rb', line 36

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



28
29
30
31
32
33
34
# File 'lib/activerecord_enum.rb', line 28

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



11
12
13
14
15
16
# File 'lib/activerecord_enum.rb', line 11

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)


44
45
46
# File 'lib/activerecord_enum.rb', line 44

def set?
  type == :set
end

#simplified_type_with_enum(field_type) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/activerecord_enum.rb', line 20

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