class DBI::DBRC::XML

A subclass of DBRC designed to handle .dbrc files in XML format. The public methods of this class are identical to DBRC.

Private Instance Methods

parse_dbrc_config_file(file = @dbrc_file) click to toggle source
# File lib/dbi/dbrc/xml.rb, line 14
def parse_dbrc_config_file(file = @dbrc_file)
  file = file.is_a?(StringIO) ? file : File.new(file)
  doc = REXML::Document.new(file)

  fields = %w[user password driver interval timeout maximum_reconnects]

  doc.elements.each('/dbrc/database') do |element|
    next unless element.attributes['name'] == database
    next if @user && @user != element.elements['user'].text

    fields.each do |field|
      val = element.elements[field]
      send("#{field}=", val.text) unless val.nil?
    end

    break
  end

  raise Error, "No record found for #{@user}@#{@database}" unless @user && @database
end