/*
values for exposes:
true: all set/getFoo are converted to setters/getters
false: do nothing
string: "foo" => only convert get/setFoo to setters getters if present
array of strings: like above, but for each string
*/Class.Mutators.Exposes = function(self, attributes){if(attributes !==true) attributes =$splat(attributes);for(method in self){var match = method.match(/^(get|set)([A-Z])(\w*)$/);if(match){var prop = match[2].toLowerCase()+ match[3];if(attributes !==true&&!attributes.contains(prop))continue;
self[(match[1]=='get') ? '__defineGetter__' : '__defineSetter__'](prop, self[method]);}}};