Class: NativeDbTypesOverride::AdapterOverrider
- Inherits:
-
Object
- Object
- NativeDbTypesOverride::AdapterOverrider
- Defined in:
- lib/activerecord-native_db_types_override/adapter_overrider.rb
Class Method Summary collapse
- .convert_symbol_to_class(adapter_class_or_sym) ⇒ Object
- .override_native_database_types(adapter_class, hash) ⇒ Object
Class Method Details
.convert_symbol_to_class(adapter_class_or_sym) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/activerecord-native_db_types_override/adapter_overrider.rb', line 18 def self.convert_symbol_to_class(adapter_class_or_sym) case adapter_class_or_sym when :postgres require 'active_record/connection_adapters/postgresql_adapter' '::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter'.constantize when :mysql require 'active_record/connection_adapters/abstract_mysql_adapter' '::ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter'.constantize when :sqlite require 'active_record/connection_adapters/sqlite3_adapter' '::ActiveRecord::ConnectionAdapters::SQLite3Adapter'.constantize when :oracle require 'active_record/connection_adapters/oracle_enhanced_adapter' '::ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter'.constantize when :sqlserver require 'active_record/connection_adapters/sqlserver_adapter' '::ActiveRecord::ConnectionAdapters::SQLServer'.constantize else adapter_class_or_sym end end |
.override_native_database_types(adapter_class, hash) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/activerecord-native_db_types_override/adapter_overrider.rb', line 4 def self.override_native_database_types(adapter_class, hash) puts "ActiveRecord - Native Database Types Override #{NativeDbTypesOverride::VERSION}" if NativeDbTypesOverride.debug? new_types = {} begin new_types = adapter_class.const_get('NATIVE_DATABASE_TYPES') rescue puts "No NATIVE_DATABASE_TYPES constant on #{adapter_class} so expecting the whole types hash to be specified via NativeDbTypesOverride.configure()" if NativeDbTypesOverride.debug? end new_types = new_types.merge(hash) puts "Defining #{adapter_class}.native_database_types as #{new_types.inspect}" if NativeDbTypesOverride.debug? adapter_class.class_eval "def native_database_types; #{new_types.inspect}; end" end |