An open API service indexing awesome lists of open source software.

https://github.com/rubyworks/association

Generic Object Assocations
https://github.com/rubyworks/association

Last synced: about 1 year ago
JSON representation

Generic Object Assocations

Awesome Lists containing this project

README

          

= Association

http://death.rubyforge.org

== DESCRIPTION

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

== FEATURES/ISSUES

* Create linked-lists with operator (#>>).
* Operator notation does not work for:
* Bignum
* Fixnum
* Date
* IPAddr
* Process::Status
Or any other class that defines #>> for something else.
* An object can have multiple associations.

== SYNOPSIS

Gerenal 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.

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

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

Bignum
Fixnum
Date
IPAddr
Process::Status

== HOW TO INSTALL

Describe your installation procedure here.

To install with RubyGems simply open a console and type:

gem install association

Local installation requires Setup.rb (gem install setup),
then download the tarball package and type:

tar -xvzf association-1.0.0.tgz
cd association-1.0.0
sudo setup.rb all

Windows users use 'ruby setup.rb all'.

== COPYING

Copyright (c) 2005 The Coding Dead

This program is ditributed unser the terms of the LGPLv3 license.

See LICENSE file for details.