【发布时间】:2010-01-07 12:24:17
【问题描述】:
我需要一个具有半自动“to_s”方法的类(实际上是生成 XML)。 我想遍历我的“attr_accessor”行中设置的所有自动方法:
class MyClass
attr_accessor :id,:a,:b,:c
end
c=MyClass.new
到目前为止,我正在做一个基本的:
c.methods - Object.methods
=> ["b", "b=", "c", "c=", "id=", "a", "a="]
我面临一些挑战:
- 'id' 可能会引起轻微的头痛 - 因为 Object 似乎已经有了一个 'id'。
- 上面的 'c.methods' 调用返回字符串 - 我没有得到任何其他元数据? (在 Java 中,“方法”是一个对象,我可以在其中执行进一步的反射)。
- 我必须处理一对多的关系(“c”是其他对象类型的数组类型)。
这就是我想要做的:我想设计一个简单的对象,它有一个'to_s',它将构建一个 XML 片段:例如。
<id> 1 </id>
<a> Title </a>
<b> Stuff </b>
<c>
<x-from-other-object>
<x-from-other-object>
....
</c>
然后从那个简单的对象继承我的数据类:这样(希望)我得到一个机制来构建一个完整的 XML 文档。
我确定我也在重新发明轮子……所以欢迎使用其他久经考验的方法。
【问题讨论】:
标签: xml ruby reflection