33: def initialize(args = {})
34: unless @settings = args.delete(:settings)
35: raise ArgumentError.new("You must refer to a settings object")
36: end
37:
38: args.each do |param, value|
39: method = param.to_s + "="
40: unless self.respond_to? method
41: raise ArgumentError, "%s does not accept %s" % [self.class, param]
42: end
43:
44: self.send(method, value)
45: end
46:
47: unless self.desc
48: raise ArgumentError, "You must provide a description for the %s config option" % self.name
49: end
50: end