module PgEnum
Constants
- ENUM_SQL
Public Class Methods
enum_rows(connection)
click to toggle source
# File lib/pg_enum.rb, line 25 def self.enum_rows(connection) connection.select_all(ENUM_SQL) end
load_enums_hash(connection)
click to toggle source
# File lib/pg_enum.rb, line 19 def self.load_enums_hash(connection) self.enums_hash = enum_rows(connection).each_with_object({}) do |row, hash| hash.deep_merge!(row["name"] => { row["value"].to_sym => row["value"] }) end end
Public Instance Methods
pg_enum(attr, options = {})
click to toggle source
# File lib/pg_enum.rb, line 38 def pg_enum(attr, options = {}) column = columns_hash[attr.to_s] if column.nil? || column.type != :enum raise "PgEnum: #{ model.table_name }.#{ attr } is not an enum" end enum(options.merge(column.name.to_sym => PgEnum.enums_hash[column.sql_type])) end