Class: Bio::Relation
Overview
Bio::Relation is a simple object storing two nodes and the relation of them. The nodes and the edge (relation) can be any Ruby object. You can also compare Bio::Relation objects if the edges have Comparable property.
Instance Attribute Summary collapse
-
#edge ⇒ Object
Returns the value of attribute edge.
-
#node ⇒ Object
Returns the value of attribute node.
Instance Method Summary collapse
-
#<=>(rel) ⇒ Object
Used by the each method to compare with another Bio::Relation object.
-
#===(rel) ⇒ Object
(also: #eql?)
Compare with another Bio::Relation object whether havind same edges and same nodes.
-
#from ⇒ Object
Returns one node.
-
#hash ⇒ Object
Used by eql? method.
-
#initialize(node1, node2, edge) ⇒ Relation
constructor
Create new binary relation object consists of the two object ‘node1’ and ‘node2’ with the ‘edge’ object as the relation of them.
- #relation ⇒ Object
-
#to ⇒ Object
Returns another node.
Constructor Details
#initialize(node1, node2, edge) ⇒ Relation
Create new binary relation object consists of the two object ‘node1’ and ‘node2’ with the ‘edge’ object as the relation of them.
718 719 720 721 |
# File 'lib/bio/pathway.rb', line 718 def initialize(node1, node2, edge) @node = [node1, node2] @edge = edge end |
Instance Attribute Details
#edge ⇒ Object
Returns the value of attribute edge.
722 723 724 |
# File 'lib/bio/pathway.rb', line 722 def edge @edge end |
#node ⇒ Object
Returns the value of attribute node.
722 723 724 |
# File 'lib/bio/pathway.rb', line 722 def node @node end |
Instance Method Details
#<=>(rel) ⇒ Object
Used by the each method to compare with another Bio::Relation object. This method is only usable when the edge objects have the property of the module Comparable.
773 774 775 776 777 778 779 780 781 782 783 784 |
# File 'lib/bio/pathway.rb', line 773 def <=>(rel) unless self.edge.kind_of? Comparable raise "[Error] edges are not comparable" end if self.edge > rel.edge return 1 elsif self.edge < rel.edge return -1 elsif self.edge == rel.edge return 0 end end |
#===(rel) ⇒ Object Also known as: eql?
Compare with another Bio::Relation object whether havind same edges and same nodes. The == method compares Bio::Relation object’s id, however this case equality === method compares the internal property of the Bio::Relation object.
747 748 749 750 751 752 753 754 755 756 757 758 759 |
# File 'lib/bio/pathway.rb', line 747 def ===(rel) if self.edge == rel.edge if self.node[0] == rel.node[0] and self.node[1] == rel.node[1] return true elsif self.node[0] == rel.node[1] and self.node[1] == rel.node[0] return true else return false end else return false end end |
#from ⇒ Object
Returns one node.
725 726 727 |
# File 'lib/bio/pathway.rb', line 725 def from @node[0] end |
#hash ⇒ Object
Used by eql? method
739 740 741 |
# File 'lib/bio/pathway.rb', line 739 def hash @node.sort.push(@edge).hash end |
#relation ⇒ Object
734 735 736 |
# File 'lib/bio/pathway.rb', line 734 def relation @edge end |
#to ⇒ Object
Returns another node.
730 731 732 |
# File 'lib/bio/pathway.rb', line 730 def to @node[1] end |