1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
class GraphViz
class FamilyTree
class Generation
def initialize( graph, persons, tree, gen_number ) #:nodoc:
@graph = graph
@all_persons = persons
@persons = {}
@tree = tree
@gen_number = gen_number
end
def all_persons #:nodoc:
@all_persons
end
def persons
@persons
end
def make( &block ) #:nodoc:
instance_eval(&block) if block
end
def method_missing(sym, *args, &block) #:nodoc:
all_persons[sym.to_s] ||= (persons[sym.to_s] ||= GraphViz::FamilyTree::Person.new( @graph, @tree, self, sym.to_s ))
end
# Generation number
def number
@gen_number
end
# Generation size
def size
@persons.size
end
end
end
end
|