今更ながらgemを作ってみる。続き

DB周りのgemを作成しているのですが、railsの場合はDBの接続周りはconf/database.ymlから読みとります。なので、そこを読み取る周りについてです。

railties/lib/rails/application/configuration.rb を参考にしたりしました。
でコードですが、以下です

require 'pathname'

module Multidb
  class Configuration
    attr_reader :default_pool
    attr_reader :default_adapter
    attr_reader :raw_configuration

    def initialize(default_adapter)
      #      @default_pool = ActiveRecord::Base.connection_pool
      yaml = Pathname.new("config/database.yml")
      @default_adapter = default_adapter

      @raw_configuration = if yaml.exist?
                 require "yaml"
                 require "erb"
                 YAML.load(ERB.new(yaml.read).result) || {}
               elsif ENV['DATABASE_URL']
                 # Value from ENV['DATABASE_URL'] is set to default database connection
                 # by Active Record.
                 {}
               else
                 raise "Could not load database configuration. No such file - #{yaml}"
               end
    end
  end
end

マスター・スレーブ対応がしたくて独自で実装しています。で、上のコードではyamlの内容を読み込んで@raw_configurationというhashに値を詰め込んでいます。
ま、もう少し整理する予定ですし、且つrailsのconf/database.ymlをちゃんと見るようにまだ見直す予定ではあります。
もっとスマートなやり方があれば、知りたいです。

では、今日はこんなところで。