random-accessible

RandomAccessible mixin provides all methods of Array to your classes (regard as high-functioning edition of Enumerable). As Enumerable mixin requests “each” method, RandomAccessible requests methods below.

size method returns the number of objects which the object contains. Note that this method must behave same as Array’s.

read_access(pos) is similar to Array#[]. But the module guarantees that the argument is an Integer larger than or equal 0 and less than its size.

replace_access(pos, val) is similar to Array#[]=. The module guarantees that the argument pos is an Integer and 0 <= pos < size.

shrink is similar to Array#pop. But the method can return anything.

Installation

gem install random-accessible

Limitation

Behavior of RandomAccessible#eql? is different from Array’s. The method always returns false if the argument does not include RandomReadable (RandomAccessible includes RandomReadable). Also note that Array#eql? returns false if the arguent is RandomAccessible.

License

This library is distributed under the dual license of the Ruby license (in the narrow sense) and the 2-clause BSD license. Please see www.ruby-lang.org and BSDL. Copyright © 2011, Natsuki Kawai.