Parent

Namespace

Included Modules

Files

Association

Association

General binary association allows one object to be associated with another. It has a variety of uses, link-lists, simple ordered maps and mixed collections, among them.

NOTE: This class is still fairly experimental.

Usage

Associations can be used to draw simple relationships.

:Apple >> :Fruit
:Apple >> :Red

:Apple.associations #=> [ :Fruit, :Red ]

It can also be used for simple lists of ordered pairs.

c = [ :a >> 1, :b >> 2 ]
c.each { |k,v| puts "#{k} associated with #{v} }

produces

a associated with 1
b associated with 2

Limitations

The method :>> is used to construct the association. It is a rarely used method so it is generally available. But you can't use it for any of the following classes becuase they use #>> for other things.

Bignum
Fixnum
Date
IPAddr
Process::Status

Attributes

index[RW]
value[RW]

Public Class Methods

[](index, value) click to toggle source
# File lib/hashery/association.rb, line 59
def [](index, value)
  new(index, value)
end
new(index, value=nil) click to toggle source
# File lib/hashery/association.rb, line 75
def initialize(index, value=nil)
  @index = index
  @value = value

  unless index.associations.include?(value)
    index.associations << value
  end
end
reference() click to toggle source

Store association references.

# File lib/hashery/association.rb, line 55
def reference
  @reference ||= Hash.new{ |h,k,v| h[k]=[] }
end

Public Instance Methods

<=>(assoc) click to toggle source
# File lib/hashery/association.rb, line 84
def <=>(assoc)
  return -1 if self.value < assoc.value
  return  1 if self.value > assoc.value
  return  0 if self.value == assoc.value
end
inspect() click to toggle source
# File lib/hashery/association.rb, line 100
def inspect
  %{#{@index.inspect} >> #{@value.inspect}}
end
invert!() click to toggle source
# File lib/hashery/association.rb, line 90
def invert!
  temp = @index
  @index = @value
  @value = temp
end
to_ary() click to toggle source
# File lib/hashery/association.rb, line 104
def to_ary
  [ @index, @value ]
end
to_s() click to toggle source
# File lib/hashery/association.rb, line 96
def to_s
  return "#{index.to_s}#{value.to_s}"
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.