Module: PgActiveRecordEnum::Schema::Statements
- Defined in:
- lib/pg_activerecord_enum/schema.rb
Instance Method Summary collapse
- #add_enum(table_name, *enum_names) ⇒ Object
- #drop_table_with_enums(table_name, enums, *args, &block) ⇒ Object
- #remove_enum(table_name, *enum_names) ⇒ Object
Instance Method Details
#add_enum(table_name, *enum_names) ⇒ Object
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? = enum_names. values = .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, add_column(table_name, enum_name, enum_name, ) 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
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. enum_names.each do |enum_name| remove_column(table_name, enum_name) PgActiveRecordEnum.drop enum_name end end |