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)
-
- (Object) edge
Returns the value of attribute edge.
-
- (Object) node
Returns the value of attribute node.
Instance Method Summary (collapse)
-
- (Object) <=>(rel)
Used by the each method to compare with another Bio::Relation object.
-
- (Object) ===(rel)
(also: #eql?)
Compare with another Bio::Relation object whether havind same edges and same nodes.
-
- (Object) from
Returns one node.
-
- (Object) hash
Used by eql? method.
-
- (Relation) initialize(node1, node2, edge)
constructor
Create new binary relation object consists of the two object 'node1' and 'node2' with the 'edge' object as the relation of them.
- - (Object) relation
-
- (Object) to
Returns another node.
Constructor Details
- (Relation) initialize(node1, node2, edge)
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
- (Object) edge
Returns the value of attribute edge
722 723 724 |
# File 'lib/bio/pathway.rb', line 722 def edge @edge end |
- (Object) node
Returns the value of attribute node
722 723 724 |
# File 'lib/bio/pathway.rb', line 722 def node @node end |
Instance Method Details
- (Object) <=>(rel)
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 |
- (Object) ===(rel) 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 |
- (Object) from
Returns one node.
725 726 727 |
# File 'lib/bio/pathway.rb', line 725 def from @node[0] end |
- (Object) hash
Used by eql? method
739 740 741 |
# File 'lib/bio/pathway.rb', line 739 def hash @node.sort.push(@edge).hash end |
- (Object) relation
734 735 736 |
# File 'lib/bio/pathway.rb', line 734 def relation @edge end |
- (Object) to
Returns another node.
730 731 732 |
# File 'lib/bio/pathway.rb', line 730 def to @node[1] end |