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