README.md in closure_tree-4.3.0 vs README.md in closure_tree-4.4.0

- old
+ new

@@ -23,12 +23,12 @@ * Fetch all [descendants as a nested hash](#nested-hashes) in 1 SELECT. * [Find a node by ancestry path](#find_or_create_by_path) in 1 SELECT. * __Best-in-class mutation performance__: * 2 SQL INSERTs on node creation * 3 SQL INSERT/UPDATEs on node reparenting -* __Support for Rails 3.0, 3.1, 3.2, and 4.0__ -* Support for reparenting children (and all their progeny) +* __Support for Rails 3.1, 3.2, 4.0, and 4.1__ +* Support for reparenting children (and all their descendants) * Support for [concurrency](#concurrency) (using [with_advisory_lock](https://github.com/mceachen/with_advisory_lock)) * Support for polymorphism [STI](#sti) within the hierarchy * ```find_or_create_by_path``` for [building out hierarchies quickly and conveniently](#find_or_create_by_path) * Support for [deterministic ordering](#deterministic-ordering) of children * Support for [preordered](http://en.wikipedia.org/wiki/Tree_traversal#Pre-order) traversal of descendants @@ -277,16 +277,18 @@ * ```tag.children``` is a ```has_many``` of immediate children (just those nodes whose parent is the current node). * ```tag.child_ids``` is an array of the IDs of the children. * ```tag.ancestors``` is a ordered scope of [ parent, grandparent, great grandparent, … ]. Note that the size of this array will always equal ```tag.depth```. * ```tag.ancestor_ids``` is an array of the IDs of the ancestors. * ```tag.self_and_ancestors``` returns a scope containing self, parent, grandparent, great grandparent, etc. +* ```tag.self_and_ancestors_ids``` returns IDs containing self, parent, grandparent, great grandparent, etc. * ```tag.siblings``` returns a scope containing all nodes with the same parent as ```tag```, excluding self. * ```tag.sibling_ids``` returns an array of the IDs of the siblings. * ```tag.self_and_siblings``` returns a scope containing all nodes with the same parent as ```tag```, including self. * ```tag.descendants``` returns a scope of all children, childrens' children, etc., excluding self ordered by depth. * ```tag.descendant_ids``` returns an array of the IDs of the descendants. -* ```tag.self_and_descendants``` returns a scope of all children, childrens' children, etc., including self, ordered by depth. +* ```tag.self_and_descendants``` returns a scope of self, all children, childrens' children, etc., ordered by depth. +* ```tag.self_and_descendant_ids``` returns IDs of self, all children, childrens' children, etc., ordered by depth. * ```tag.hash_tree``` returns an [ordered, nested hash](#nested-hashes) that can be depth-limited. * ```tag.find_by_path(path)``` returns the node whose name path *from ```tag```* is ```path```. See (#find_or_create_by_path). * ```tag.find_or_create_by_path(path)``` returns the node whose name path *from ```tag```* is ```path```, and will create the node if it doesn't exist already.See (#find_or_create_by_path). * ```tag.find_all_by_generation(generation_level)``` returns the descendant nodes who are ```generation_level``` away from ```tag```. * ```tag.find_all_by_generation(0).to_a``` == ```[tag]``` @@ -476,24 +478,21 @@ after do FileUtils.remove_entry_secure ENV['FLOCK_DIR'] end ``` - ## Testing Closure tree is [tested under every valid combination](http://travis-ci.org/#!/mceachen/closure_tree) of * Ruby 1.9.3 and Ruby 2.0.0 -* The latest Rails 3.0, 3.1, 3.2, and 4.0 branches, and +* The latest Rails 3.1, 3.2, 4.0, and 4.1 branches, and * MySQL and PostgreSQL. SQLite works in a single-threaded environment. Assuming you're using [rbenv](https://github.com/sstephenson/rbenv), you can use ```tests.sh``` to run the test matrix locally. -Parallelism is not tested with Rails 3.0.x nor 3.1.x due to this -[known issue](https://github.com/rails/rails/issues/7538). - +Parallelism is not tested with Rails 3.1.x due to this [known issue](https://github.com/rails/rails/issues/7538). ## Change log See https://github.com/mceachen/closure_tree/blob/master/CHANGELOG.md