lib/apartment/database.rb in apartment-0.20.0 vs lib/apartment/database.rb in apartment-0.21.0
- old
+ new
@@ -25,14 +25,23 @@
#
def adapter
Thread.current[:apartment_adapter] ||= begin
adapter_method = "#{config[:adapter]}_adapter"
+ if defined?(JRUBY_VERSION)
+ if config[:adapter] =~ /mysql/
+ adapter_method = 'jdbc_mysql_adapter'
+ elsif config[:adapter] =~ /postgresql/
+ adapter_method = 'jdbc_postgresql_adapter'
+ end
+ end
+
begin
+ require "apartment/adapters/abstract_jdbc_adapter" if defined?(JRUBY_VERSION)
require "apartment/adapters/#{adapter_method}"
rescue LoadError
- raise "The adapter `#{config[:adapter]}` is not yet supported"
+ raise "The adapter `#{adapter_method}` is not yet supported"
end
unless respond_to?(adapter_method)
raise AdapterNotFound, "database configuration specifies nonexistent #{config[:adapter]} adapter"
end
@@ -46,10 +55,10 @@
def reload!(config = nil)
Thread.current[:apartment_adapter] = nil
@config = config
end
- private
+ private
# Fetch the rails database configuration
#
def config
@config ||= Rails.configuration.database_configuration[Rails.env].symbolize_keys
\ No newline at end of file