Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit removes the custom iteration methods in the
Cursor
class and instead switches to Ruby'sEnumerable
module.This is a backwards incompatible change because it required renaming
find_all
tofind_by_kind
(find_all
is an enumerable method). In addition, the function signature changed to allow the caller to specify whether to search direct children or all children.Also it renames
visit_children
toeach
. Theeach
method now takes an optional parameter that specifies whether to recurse through the tree or not. By default it is true to match the previous behavior. Note you can only set this when using each, and not when using otherEnumerable
methods since there is now way to pass it throughfilter
,select
, etc. Also note blocks passed to the methods receive two parameters, child and parent, which might be confusing to some people (although it is like iterating through aHash
).For my particular use case, I want to be able to control whether iteration is recursive or not.
Thoughts?