You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Preparing for 2.1.2.
- Updated the version to 2.1.2pre
- Linked the Github repository in the metadata (for Github packages)
* Updated the Rakefile to publish packages to the Github registry.
Registry: <https://github.com/evolve75/RubyTree/pkgs/rubygems/rubytree>
* Prevent adding ancestor as child
* Detach children on remove_all!
Ensure children become true roots after remove_all! by clearing their parent
links. This matches the method's contract and prevents stale parent
references from corrupting later traversal or metrics.
* Guard rename_child collisions
Raise when renaming a child to an existing sibling name to prevent overwriting
entries in the children hash. This avoids orphaning nodes and keeps child
lookup consistent.
* Harden binary child assignment
Fix set_child_at index errors and clean up parent/hash references
when replacing or clearing children. This preserves swap semantics and
avoids stale lookups.
* Handle nils in traversal
Skip nil children during postorder and breadth-first traversals so binary
nodes with missing children do not break traversal. Add a regression test
covering nil child traversal paths.
* Fix each_level enumerator
Return a level-wise enumerator when no block is given and add a test to
assert the yielded level arrays match the tree structure.
* Fix to_s empty content
Render '<Empty>' when a node has nil content and add tests for both
nil and non-nil content values.
* Document 2.2.0 API changes
Add a new 2.2.0 section covering recent behavior changes in tree
operations and traversal, plus link references for the new entries.
* Release 2.2.0
Bump the gem version to 2.2.0 and record the 2.2.0 changes in the
project history.
0 commit comments