B
benny
Dear list,
didn't find anything like that so I thought, I could be useful to somebody:
You'll find a little recursive OpenStruct class below. It allows you to
generate an (pseudo)attribut based hierarchy on the fly. the calling of the
"attribut" is sufficious to generate it (you don't have to set it to a
certain value).
the object might later go back through this tree. might be useful for
settings as an alternative way to recursive hashes.
regards, benny
require 'ostruct'
class ROpenStruct < OpenStruct
def method_missing(mid, *args)
mname = mid.id2name
len = args.length
if len == 0
@table[mname.intern] = ROpenStruct.new
self.new_ostruct_member(mname)
@table[mname.intern]
else
super
end
end
end
test = ROpenStruct.new
test.p = "hello"
test.t.s.p.t.z.y.x = "hi"
test.xyz
p test
didn't find anything like that so I thought, I could be useful to somebody:
You'll find a little recursive OpenStruct class below. It allows you to
generate an (pseudo)attribut based hierarchy on the fly. the calling of the
"attribut" is sufficious to generate it (you don't have to set it to a
certain value).
the object might later go back through this tree. might be useful for
settings as an alternative way to recursive hashes.
regards, benny
require 'ostruct'
class ROpenStruct < OpenStruct
def method_missing(mid, *args)
mname = mid.id2name
len = args.length
if len == 0
@table[mname.intern] = ROpenStruct.new
self.new_ostruct_member(mname)
@table[mname.intern]
else
super
end
end
end
test = ROpenStruct.new
test.p = "hello"
test.t.s.p.t.z.y.x = "hi"
test.xyz
p test