I have a program that will create a lot of objects, mainly of type
SomeDocumentation::Host and SomeDocumentation::Role.
Since the Role objects typically create a lot of Host objects, and the
other way around, I tried to be clever, and look up objects that
already exists with the same value of “name”, since the initialize
reads a bit from disk.
I’ve tried tried to solve it with the following code snippet:
def initialize(name)
ObjectSpace.each_object(self.class) do |anObject|
return anObject if anObject.name == name
end
<do the real initialization, since we do not have an object with
the same .name attribute/method/whatever yet>
end
…but when it is included in the Host initialize method, I end up
with a lot of empty Host objects for the second (third, fourth, and so
on) Role object when doing this from the main script:
roles.uniq.each do |role|
aRole = SomeDocumentation::Role.new(role)
puts aRole.documentation
end
Does anyone see what I’m doing wrong?
···
–
Sandbeck Mathisen - http://fnord.no
Trust the Computer, the Computer is your Friend