lib/apartment/database.rb in apartment-0.13.0.1 vs lib/apartment/database.rb in apartment-0.13.1
- old
+ new
@@ -1,59 +1,57 @@
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, :drop, :process, :process_excluded_models, :reset, :seed, :switch, :to => :adapter
+ delegate :create, :current_database, :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
+ rescue LoadError => e
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