Ruby: Dynamic meta-programming to create attr_accessor like methods on the fly