Sha256: fea04f8500c0c3581ebd71835b63b6a23c5a54149073a1eb93c8fd835fbe1903
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
module ActiveRecord module PGEnum def self.install_postgresql_adapter require "active_record/connection_adapters/postgresql_adapter" ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.include PostgreSQLAdapter ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES.merge!(enum: { name: "enum" }) end module PostgreSQLAdapter # Helper method used by the monkeypatch internals. Provides a hash of ENUM types as they exist currently. # # Example: # # { "foo_type" => ["foo", "bar", "baz"] } def enum_types res = exec_query(<<-SQL.strip_heredoc, "SCHEMA").cast_values SELECT t.typname AS enum_name, string_agg(e.enumlabel, ' ' ORDER BY e.enumsortorder) AS enum_value FROM pg_type t JOIN pg_enum e ON t.oid = e.enumtypid JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace WHERE n.nspname = 'public' GROUP BY enum_name SQL res.inject({}) do |memo, (name, values)| memo[name] = values.split(" ") memo end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activerecord-pg_enum-0.4.0 | lib/active_record/pg_enum/postgresql_adapter.rb |