Sha256: 0865a034c24bce4ceb78ba5809c2ff9b41b358ecb9dff1fae39007d8b0733311

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

# encoding: utf-8

# Configuration for a rails app
# @author Gernot Kogler

require 'xapian_db'
require 'rails'

module XapianDb
  class Railtie < ::Rails::Railtie

    config.before_configuration do

      # Read the database configuration file if there is one
      config_file_path = "#{Rails.root}/config/xapian_db.yml"
      if File.exist?(config_file_path)
        db_config = YAML::load_file config_file_path
        env_config = db_config[Rails.env]
        database_path = env_config["database"] || ":memory:"
        adapter       = env_config["adapter"]  || :active_record
        writer        = env_config["writer"]   || :direct
      else
        # No config file, set the defaults
        Rails.env == "test" ? database_path = ":memory:" : database_path = "db/xapian_db/#{Rails.env}"
        adapter = :active_record
        writer  = :direct
      end
      
      # Do the configuration
      XapianDb::Config.setup do |config|
        if database_path == ":memory:"
          config.database :memory
        else
          config.database database_path
        end
        config.adapter adapter.to_sym  
        config.writer writer.to_sym
      end
      
    end
    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
xapian_db-0.3.1 lib/xapian_db/railtie.rb