Indexable is a mixin that provides index based methods, working soley with four methods: #, #, # and #.
These methods work in harmony. Where # returns a position of a given element, # returns elements for given positions. # is like # but replaces the given position with new values. This method is not part of ruby core, but it generally just an alias for #[]=, just as # is an alias of #[]. # of course simply returns the total length of the indexable object.
Thomas Sawyer