Sha256: 9a5efe86ed93740d8624eea253c682c5caf2256e77594fa19105cddb56836df5

Contents?: true

Size: 1.32 KB

Versions: 6

Compression:

Stored size: 1.32 KB

Contents

# TODO: Have all of the initializer modules required and then traverse the subclasses, asking them if they're enabled. If they are enabled, then they should do their initialization stuff. Is this really necessary to develop this entirely new system when the components system exists?

module Adhearsion
  class Initializer
    
    class DatabaseInitializer
      
      class << self

        def start
          require_dependencies
          require_models
          @@config = Adhearsion::AHN_CONFIG.database
          ActiveRecord::Base.allow_concurrency = true
          establish_connection
          create_call_hook_for_connection_cleanup
        end

        def stop
          ActiveRecord::Base.remove_connection
        end

        private

        def create_call_hook_for_connection_cleanup
          Events.register_callback([:asterisk, :before_call]) do
            ActiveRecord::Base.verify_active_connections!
          end
        end

        def require_dependencies
          require 'active_record'
        end

        def require_models
          AHN_CONFIG.files_from_setting("paths", "models").each do |model|
            load model
          end
        end
        
        def establish_connection
          ActiveRecord::Base.establish_connection @@config.connection_options
        end

      end
    end
    
  end
end

Version data entries

6 entries across 6 versions & 4 rubygems

Version Path
eric-adhearsion-0.8.0 lib/adhearsion/initializer/database.rb
jicksta-adhearsion-0.7.999 lib/adhearsion/initializer/database.rb
jicksta-adhearsion-0.8.0 lib/adhearsion/initializer/database.rb
sevenscale-adhearsion-0.8.0 lib/adhearsion/initializer/database.rb
adhearsion-0.8.0 lib/adhearsion/initializer/database.rb
adhearsion-0.8.1 lib/adhearsion/initializer/database.rb