API Changes in RubyTree

This file documents various API level changes that have been made to the RubyTree package.

Note: API level changes are expected to reduce dramatically after the 1.x release. In most cases, an alternative will be provided to ensure relatively smooth transition to the new APIs.

Release 0.9.5 Changes

  • The Tree::TreeNode#add method now provides 'move' semantics, if a child which is on an existing tree is added to another tree, or location on the same tree. In this situation, the child node is removed from its old position, and added to the new parent node. After the add operation is complete, the child no longer exists on the old tree/location.

Release 0.9.3 Changes

  • The validation for unique node names has changed in the Tree::TreeNode#add method. RubyTree no longer enforces globally unique names. The node-names need to be unique only between the sibling nodes.

Release 0.9.0 Changes

Release 0.8.3 Changes

Release 0.8.0 Changes

  • Added the ability to specify an optional insertion position in the Tree::TreeNode#add method. Idea and original code contributed by Dirk.

  • Added a new method Tree::TreeNode#detached_subtree_copy to allow cloning the entire tree. This method is also aliased to Tree::TreeNode#dup. Idea and original code contributed by Vincenzo Farruggia.

  • Converted all CamelCase method names to the canonical ruby_method_names (underscore separated). The CamelCase methods can still be invoked, but will throw a Deprecated warning.

Release 0.7.0 Changes

Release 0.6.1 Changes

# Local Variables: # mode: rdoc # coding: utf-8-unix # End: