lib/apartment/database.rb in apartment-0.13.0 vs lib/apartment/database.rb in apartment-0.13.0.1

- old
+ new

@@ -1,57 +1,59 @@ require 'active_support/core_ext/module/delegation' module Apartment - + # The main entry point to Apartment functions - module Database - + module Database + extend self - delegate :create, :current_database, :process, :process_excluded_models, :reset, :seed, :switch, :to => :adapter + delegate :create, :current_database, :drop, :process, :process_excluded_models, :reset, :seed, :switch, :to => :adapter + attr_writer :config + # Initialize Apartment config options such as excluded_models - # - def init + # + def init process_excluded_models end - + # Fetch the proper multi-tenant adapter based on Rails config - # + # # @return {subclass of Apartment::AbstractAdapter} - # + # def adapter @adapter ||= begin adapter_method = "#{config[:adapter]}_adapter" - - begin + + begin require "apartment/adapters/#{adapter_method}" - rescue LoadError => e + rescue LoadError raise "The adapter `#{config[:adapter]}` is not yet supported" end unless respond_to?(adapter_method) raise AdapterNotFound, "database configuration specifies nonexistent #{config[:adapter]} adapter" end - + send(adapter_method, config) end end - + # Reset config and adapter so they are regenerated - # + # def reload! @adapter = nil @config = nil end - + private - + # Fetch the rails database configuration - # + # def config @config ||= Rails.configuration.database_configuration[Rails.env].symbolize_keys end - + end - + end \ No newline at end of file