module Rein::Type::Enum
This module contains methods for defining enum types.
Public Instance Methods
add_enum_value(enum_name, new_value)
click to toggle source
# File lib/rein/type/enum.rb, line 23 def add_enum_value(enum_name, new_value) execute("ALTER TYPE #{enum_name} ADD VALUE #{quote(new_value)}") end
create_enum_type(*args)
click to toggle source
# File lib/rein/type/enum.rb, line 9 def create_enum_type(*args) reversible do |dir| dir.up { _create_enum_type(*args) } dir.down { _drop_enum_type(*args) } end end
drop_enum_type(*args)
click to toggle source
# File lib/rein/type/enum.rb, line 16 def drop_enum_type(*args) reversible do |dir| dir.up { _drop_enum_type(*args) } dir.down { _create_enum_type(*args) } end end
Private Instance Methods
_create_enum_type(enum_name, enum_values = [])
click to toggle source
# File lib/rein/type/enum.rb, line 29 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, *)
click to toggle source
# File lib/rein/type/enum.rb, line 34 def _drop_enum_type(enum_name, *) execute("DROP TYPE #{enum_name}") end