# File lib/preferences.rb, line 236
  def register_pref_var(obj, *vars)
    obj_id = obj.object_id
    md = metadata[obj_id]
    unless md
      raise ConfigError, "This object must register a preferences key."
    end

    obj_prefs = md.prefs
    obj_vars = md.vars

    defaults = vars[-1].is_a?(Hash) && vars.pop
    vars += defaults.keys if defaults

    vars.each do |var|
      obj_vars << var

      if obj_prefs.key?(var)
        obj.send "#{var}=", obj_prefs[var]
      elsif defaults and defaults.key?(var)
        value = defaults[var]
        value = value.call if value.is_a? Proc or value.is_a? Method
        obj.send "#{var}=", value
      end
    end
  end