# @markup rdoc
-
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 [email protected]+ is not a string).
-
This is the public release of
R0.8.0
, with additional bug-fixes. Note thatR0.8.0
will not be released separately as a publicly available Rubygem. All changes as listed forR0.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 canonicalruby_method_names
(underscore separated). TheCamelCase
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: