# @markup rdoc
Changed all references to {rubyforge.org}.
Fixed the issue with globally unique node names. See Github issue #24.
Yanked R0.9.1 as the History file was not updated.
Updated the gem description.
Changed the travis-ci build to include coverall support.
Updated the Gem description.
Incorporated code coverage using the coverall gem.
This is a feature and bug-fix release.
Rubytree now supports postordered traversal via the {Tree::TreeNode#postordered_each} method. Thanks to to {github.com/pdecourcel Paul de Courcel} for this.
The Binary tree now supports inorder traversal via the {Tree::BinaryTreeNode#inordered_each} method.
Ability to merge in another tree at a chosen node, or merge two trees to create a third tree. Thanks to {github.com/dazoakley Darren Oakley} for this ({github.com/evolve75/RubyTree/pull/2 pull request #2})
RubyTree now mixes in the {ruby-doc.org/core-1.8.7/Comparable.html Comparable} module.
(Partial) fix for preventing cyclic graphs in the tree
Refactored the {Tree::TreeNode#each} method to prevent stack errors while navigating deep trees ({github.com/evolve75/RubyTree/issues/12 issue #12})
Check to ensure that the added node’s name is unique to the destination tree ({github.com/evolve75/RubyTree/pull/9 merge #9}). Thanks to {github.com/ysf Youssef Rebahi-Gilbert} for the idea and the initial code
Fix for issue 23, where the tree traversal on a binary tree would fail if the left child was nil
The traversal methods ({Tree::TreeNode#each}, {Tree::TreeNode#preordered_each}, {Tree::TreeNode#postordered_each} and {Tree::TreeNode#breadth_each}) now correctly return an {ruby-doc.org/core-1.8.7/Enumerable.html Enumerator} as the return value when no block is given, and return the receiver node if a block was provided. This is consistent with how the standard Ruby collections work.
Structural changes in the code to refactor out the non-core functions into modules (mostly by extracting out non-core code as mixins).
Significant refactoring of the documentation. The {yardoc.org Yardoc} tags are now extensively used.
Basic support built-in for including example code in the Gem. This will be fully expanded in the next release.
Various changes to the {bundler.io bundler}, {travis-ci.org travis-ci} and other Rakefile related changes.
This is a primarily a bug-fix release, with some packaging changes.
Have removed the dependency on Hoe. The build is now vanilla gemspec based.
Included support for gem-testers.
Included support for Bundler.
Implemented the {Tree::Utils::JSONConverter#as_json} method to support Rails’ JSON encoding, by pulling in the changes by Eric Cline (github.com/escline).
Partial fix for Github Bug #5. This is to prevent infinite looping is an existing node is added again elsewhere in the tree.
Fixed the issue with using integers as node names, and its interaction with the +Tree::TreeNode#[]+ access method as documented in Github Bug #6.
Clarified the need to have unique node names Github Bug #7 (documentation).
Fixed {Tree::TreeNode#siblings} method to return an empty array for the root node as well (it returned nil earlier).
Minor bug-fix release to address bug #1215 ({Tree::TreeNode#to_s} breaks if +@content+ or +@parent.name+ is not a string).
This is the public release of R0.8.0, with additional bug-fixes. Note that R0.8.0 will not be released separately as a publicly available Rubygem. All changes as listed for R0.8.0 are available in this release.
The main change in R0.8.0/R0.8.1 is conversion of all CamelCase method names to snake_case. The old CamelCase method names will still work (to ensure backwards compatibility), but will also display a warning.
The {Tree::TreeNode#add} method now accepts an optional child insertion point.
The subtree from the current node can now be cloned in its entirety using the {Tree::TreeNode#detached_subtree_copy} method.
A major bug-fix for bug #28613 which impacted the Binarytree implementation.
Minor code re-factoring driven by the code-smell checks using reek.
Inclusion of the reek code-smell detection tool in the Rakefile.
Updated the {Tree::TreeNode#add} method to allow the optional specification of an insertion position in the child array.
Added a new method {Tree::TreeNode#detached_subtree_copy} to allow cloning the entire tree (this method is also aliased as dup).
Converted all CamelCase method names to the canonical ruby_method_names (underscore separated). The CamelCase methods _can still_ be invoked, but will throw a {rug-b.rubyforge.org/structured_warnings/rdoc/ Deprecated warning}. The support for old CamelCase methods will go away some time in the future, so the user is advised to convert all current method invocations to the new names.
Added new methods to report the degree statistics of a node.
Added a convenience method alias {Tree::Utils::TreeMetricsHandler#level Tree::TreeNode#level} to nodeDepth.
Converted the exceptions thrown on invalid arguments to {www.ruby-doc.org/core-2.0.0/ArgumentError.html ArgumentError} instead of {www.ruby-doc.org/core-2.0.0/RuntimeError.html RuntimeError}.
Converted the documentation to {yardoc.org Yard} format.
Added new methods for converting from/to {www.json.org JSON} formats. Thanks to Dirk Breuer for this fork.
Added a separate {file:API-CHANGES.rdoc} documentation file.
Added fixes for root related edge conditions to {Tree::TreeNode#is_only_child? isOnlyChild?}, {Tree::TreeNode#next_sibling nextSibling}, {Tree::TreeNode#previous_sibling previousSibling} and {Tree::TreeNode#remove! remove!} methods.
Removed the ‘ChangeLog’ file as this can now be generated from the git logs.
Other minor code cleanup.
Updated the documentation.
Changed the hard-dependency on the ‘structured_warnings’ RubyGem to a soft-dependency - which lets Rubytree still work if this RubyGem is not available. The rationale for this is that we should not require the user to install a separate library just for one single edge-case function (in this case, to indicate a deprecated method). However, if the library is available on the user’s system, then it will get used.
Fixed the bug#22535 where the {Tree::Utils::TreeMetricsHandler#depth Tree::TreeNode#depth} method was actually returning height+1 (not the depth).
Marked the {Tree::Utils::TreeMetricsHandler#depth Tree::TreeNode#depth} method as deprecated (and introduced the run-time dependency on structured-warnings gem).
Cleanup of the build system to exclusively use Hoe.
Modifications and reformatting to the documentation.
No user visible changes.
Added more test cases and enabled {github.com/seattlerb/zentest ZenTest} compatibility for the test case names.
Minor code refactoring.
Fixed the marshalling code to correctly handle non-string content.
Changes to the build mechanism (now uses
{www.zenspider.com/projects/hoe.html Hoe}).
Minor code refactoring. Changes in the Rakefile.
;; Local Variables: ;; mode: rdoc ;; End:
Generated with the Darkfish Rdoc Generator 2.