Sha256: 617501fb7e33cea55c260b96eb9e7b03a73b239a31c52dddcc1b2ecc1a74adce
Contents?: true
Size: 1.35 KB
Versions: 4
Compression:
Stored size: 1.35 KB
Contents
require 'active_support/core_ext/module/delegation' module Apartment # The main entry point to Apartment functions module Database extend self delegate :create, :current_database, :process, :process_excluded_models, :reset, :seed, :switch, :to => :adapter # Initialize Apartment config options such as excluded_models # 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 require "apartment/adapters/#{adapter_method}" 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
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
apartment-0.13.1 | lib/apartment/database.rb |
apartment-0.13.0 | lib/apartment/database.rb |
apartment-0.12.0 | lib/apartment/database.rb |
apartment-0.11.1 | lib/apartment/database.rb |