lib/ar/enum.rb in ar-enum-0.2.3 vs lib/ar/enum.rb in ar-enum-0.3.0
- old
+ new
@@ -17,17 +17,21 @@
end
end
ActiveSupport.on_load(:active_record) do
require "active_record/connection_adapters/postgresql_adapter"
+ silence_warnings do
+ ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES = ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES.dup
+ end
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.include(
Module.new do
def create_table_definition(*args)
ActiveRecord::Base.connection.enum_types.each do |enum|
- ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[enum["name"].to_sym] = {name: enum["name"]}
ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnMethods.class_eval do
+ ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[enum["name"].to_sym] = {name: enum["name"]}
+
define_method(enum["name"]) do |*names, **options|
names.each {|name| column(name, enum["name"].to_sym, options) }
end
end
end
@@ -51,10 +55,10 @@
precision: type_metadata.precision,
scale: type_metadata.scale
)
type_metadata = ActiveRecord::ConnectionAdapters::PostgreSQLTypeMetadata.new(type_metadata)
- ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[type_metadata.type] = {name: "character varying"}
+ ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::NATIVE_DATABASE_TYPES[type_metadata.type] = {name: "character varying"}
end
type_metadata
end
end