# @markup rdoc
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.
{Tree::TreeNode#siblings} will now return an empty array for the root node.
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.
Converted all exceptions thrown on invalid method arguments to from 'RuntimeError' to 'ArgumentError'. This impacts the following methods:
{Tree::TreeNode#initialize}
{Tree::TreeNode#[]}
Added {Tree::TreeNode#level} as an alias for {Tree::TreeNode#node_depth}
Added new methods {Tree::TreeNode#in_degree} and {Tree::TreeNode#out_degree} to report the node's degree stats
{Tree::TreeNode#is_only_child?} now returns true for a root node.
{Tree::TreeNode#next_sibling} and {Tree::TreeNode#previous_sibling} now return nil for a root node.
{Tree::TreeNode#add} and {Tree::TreeNode#<<} now throw an ArgumentError exception if a nil node is passed as an argument.
Added new methods {Tree::TreeNode#to_json} and Tree::TreeNode::json_create to convert to/from the JSON format. Thanks to Dirk for this change.
Deprecated the {Tree::TreeNode#depth} method as it was returning an incorrect depth value. Have introduced a new replacement method {Tree::TreeNode#node_depth} which returns the correct result.
# Local Variables: # mode: rdoc # coding: utf-8-unix # End:
Generated with the Darkfish Rdoc Generator 2.