I just released the gem package cursor-0.5 on rubyforge: http://rubyforge.org/frs/download.php/4500/cursor-0.5.gem If you've used the iterator (external iterator API) package, I believe it has a superset of the functionality. Here is the description I have for the base class: "An object in this Cursor class can be best thought of as a cursor in a text editor. Many of the same operations apply - insert, delete, replace, copy, paste, move, goto begin/end, mark position, goto mark, etc. Unlike a text editor, this class can operate on variety of data, not just characters and strings. It is up to the derived classes to deal with what type of data is stored (i.e. characters, arbitrary array objects) and how it is stored (in an Array, String, IO, mapping to another Cursor, etc)." The is an initial release that focuses on the functionality and tries to give a robust API (mimics stuff in IO, Array/String, is Enumerable, is Rangable, is Comparable). The derived classes are minimally implemented and not very efficient (and some cases terribly inefficient). Sorry, no examples yet. And testing was minimal. __________________________________ Yahoo! Mail Mobile Take Yahoo! Mail with you! Check email on your mobile phone. http://mobile.yahoo.com/learn/mail