Module: Rein::Type::Enum

Includes:
ActiveRecord::ConnectionAdapters::Quoting
Included in:
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
Defined in:
lib/rein/type/enum.rb

Overview

This module contains methods for defining enum types.

Instance Method Summary collapse

Instance Method Details

#add_enum_value(enum_name, new_value) ⇒ Object



18
19
20
# File 'lib/rein/type/enum.rb', line 18

def add_enum_value(enum_name, new_value)
  execute("ALTER TYPE #{enum_name} ADD VALUE #{quote(new_value)}")
end

#create_enum_type(enum_name, enum_values = []) ⇒ Object



9
10
11
12
# File 'lib/rein/type/enum.rb', line 9

def create_enum_type(enum_name, enum_values = [])
  enum_values = enum_values.map { |value| quote(value) }.join(", ")
  execute("CREATE TYPE #{enum_name} AS ENUM (#{enum_values})")
end

#drop_enum_type(enum_name) ⇒ Object



14
15
16
# File 'lib/rein/type/enum.rb', line 14

def drop_enum_type(enum_name)
  execute("DROP TYPE #{enum_name}")
end