Class: GraphViz::FamilyTree::Person
- Defined in:
- lib/graphviz/family_tree/person.rb
Instance Method Summary collapse
- 
  
    
      #couples  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    :nodoc:. 
- #id ⇒ Object
- 
  
    
      #initialize(graph, tree, generation, id)  ⇒ Person 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    :nodoc:. 
- 
  
    
      #is_a_boy(name)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Define the current person as a boy. 
- 
  
    
      #is_a_girl(name)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Define the current perdon as a girl. 
- 
  
    
      #is_a_man(name)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Define the current person as a man. 
- 
  
    
      #is_a_woman(name)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Define the current perdon as a woman. 
- 
  
    
      #is_dead  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Define the current person as dead. 
- 
  
    
      #is_divorced_with(x)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Define that’s two persons are divorced. 
- 
  
    
      #is_maried_with(x)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Define that’s two persons are maried. 
- 
  
    
      #is_widower_of(x)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Define that’s a person is widower of another. 
- 
  
    
      #kids(*z)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Define the kids of a single person. 
- #name ⇒ Object
- 
  
    
      #node  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    :nodoc:. 
- #sibling ⇒ Object
- #sibling=(x) ⇒ Object
Constructor Details
#initialize(graph, tree, generation, id) ⇒ Person
:nodoc:
| 7 8 9 10 11 12 13 14 15 | # File 'lib/graphviz/family_tree/person.rb', line 7 def initialize( graph, tree, generation, id ) #:nodoc: @graph = graph @node = @graph.add_nodes( id ) @node["shape"] = "box" @tree = tree @generation = generation @x, @y = 0, 0 @sibling = nil end | 
Instance Method Details
#couples ⇒ Object
:nodoc:
| 33 34 35 | # File 'lib/graphviz/family_tree/person.rb', line 33 def couples #:nodoc: @couples end | 
#id ⇒ Object
| 17 18 19 | # File 'lib/graphviz/family_tree/person.rb', line 17 def id @node.id end | 
#is_a_boy(name) ⇒ Object
Define the current person as a boy
greg.is_a_boy( "Greg" )
| 52 53 54 | # File 'lib/graphviz/family_tree/person.rb', line 52 def is_a_boy( name ) is_a_man( name ) end | 
#is_a_girl(name) ⇒ Object
Define the current perdon as a girl
maia.is_a_girl( "Maia" )
| 66 67 68 | # File 'lib/graphviz/family_tree/person.rb', line 66 def is_a_girl( name ) is_a_woman( name ) end | 
#is_a_man(name) ⇒ Object
Define the current person as a man
greg.is_a_man( "Greg" )
| 44 45 46 47 | # File 'lib/graphviz/family_tree/person.rb', line 44 def is_a_man( name ) @node["label"] = name @node["color"] = "blue" end | 
#is_a_woman(name) ⇒ Object
Define the current perdon as a woman
mu.is_a_woman( "Muriel" )
| 59 60 61 62 | # File 'lib/graphviz/family_tree/person.rb', line 59 def is_a_woman( name ) @node["label"] = name @node["color"] = "pink" end | 
#is_dead ⇒ Object
Define the current person as dead
jack.is_dead
| 108 109 110 | # File 'lib/graphviz/family_tree/person.rb', line 108 def is_dead @node["style"] = "filled" end | 
#is_divorced_with(x) ⇒ Object
Define that’s two persons are divorced
sophie.is_divorced_with john
| 84 85 86 87 88 89 90 91 | # File 'lib/graphviz/family_tree/person.rb', line 84 def is_divorced_with( x ) node = @graph.add_nodes( "#{@node.id}And#{x.node.id}" ) node["shape"] = "point" node["color"] = "red" @graph.add_edges( @node, node, "dir" => "none", "color" => "red" ) @graph.add_edges( node, x.node, "dir" => "none", "color" => "red" ) @tree.add_couple( self, x, node ) end | 
#is_maried_with(x) ⇒ Object
Define that’s two persons are maried
mu.is_maried_with greg
| 73 74 75 76 77 78 79 | # File 'lib/graphviz/family_tree/person.rb', line 73 def is_maried_with( x ) node = @graph.add_nodes( "#{@node.id}And#{x.node.id}" ) node["shape"] = "point" @graph.add_edges( @node, node, "dir" => "none" ) @graph.add_edges( node, x.node, "dir" => "none" ) @tree.add_couple( self, x, node ) end | 
#is_widower_of(x) ⇒ Object
Define that’s a person is widower of another
simon.is_widower_of elisa
| 96 97 98 99 100 101 102 103 | # File 'lib/graphviz/family_tree/person.rb', line 96 def is_widower_of( x ) #veuf node = @graph.add_nodes( "#{@node.id}And#{x.node.id}" ) node["shape"] = "point" node["color"] = "green" @graph.add_edges( @node, node, "dir" => "none", "color" => "green" ) @graph.add_edges( node, x.node, "dir" => "none", "color" => "green" ) @tree.add_couple( self, x, node ) end | 
#kids(*z) ⇒ Object
Define the kids of a single person
alice.kids( john, jack, julie )
| 115 116 117 | # File 'lib/graphviz/family_tree/person.rb', line 115 def kids( *z ) GraphViz::FamilyTree::Couple.new( @graph, @node, [self] ).kids( *z ) end | 
#name ⇒ Object
| 21 22 23 | # File 'lib/graphviz/family_tree/person.rb', line 21 def name @node.label || @node.id end | 
#node ⇒ Object
:nodoc:
| 37 38 39 | # File 'lib/graphviz/family_tree/person.rb', line 37 def node #:nodoc: @node end | 
#sibling ⇒ Object
| 25 26 27 | # File 'lib/graphviz/family_tree/person.rb', line 25 def sibling @sibling end | 
#sibling=(x) ⇒ Object
| 29 30 31 | # File 'lib/graphviz/family_tree/person.rb', line 29 def sibling=(x) @sibling=x end |