Module: PgActiveRecordEnum::Schema::Statements

Defined in:
lib/pg_activerecord_enum/schema.rb

Instance Method Summary collapse

Instance Method Details

#add_enum(table_name, *enum_names) ⇒ Object

Raises:

  • (ArgumentError)


11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/pg_activerecord_enum/schema.rb', line 11

def add_enum(table_name, *enum_names)
  raise ArgumentError, 'Please specify enum name in your add_enum call in your migration.' if enum_names.empty?

  options = enum_names.extract_options!
  values = options.delete(:values)

  raise ArgumentError, 'Please specify values for enum in your migration.' if values.blank?

  enum_names.each do |enum_name|
    PgActiveRecordEnum.define enum_name, values, options
    add_column(table_name, enum_name, enum_name, options)
  end
end

#drop_table_with_enums(table_name, enums, *args, &block) ⇒ Object



36
37
38
39
# File 'lib/pg_activerecord_enum/schema.rb', line 36

def drop_table_with_enums(table_name, enums, *args, &block)
  drop_table(table_name, *args, &block)
  enums.each { |enum_name| PgActiveRecordEnum.drop enum_name }
end

#remove_enum(table_name, *enum_names) ⇒ Object

Raises:

  • (ArgumentError)


25
26
27
28
29
30
31
32
33
34
# File 'lib/pg_activerecord_enum/schema.rb', line 25

def remove_enum(table_name, *enum_names)
  raise ArgumentError, 'Please specify enum name in your add_enum call in your migration.' if enum_names.empty?

  enum_names.extract_options!

  enum_names.each do |enum_name|
    remove_column(table_name, enum_name)
    PgActiveRecordEnum.drop enum_name
  end
end