Comments (2)
The each
method is actually required in order for Enumerable
to work. See details in the Enumerable module documentation.
This article describes the rationale behind Enumerable
, and how to use it, in more detail.
As you can see from the method documentation for find, the intent of this method is to search the whole collection, and in the specific case for RubyTree, will definitely use the same semantics for the collection as TreeNode#each
, i.e., will start searching from the node itself.
Perhaps an example will help:
require "rubytree"
if __FILE__ == $0
root_node = Tree::TreeNode.new("ROOT", "Root Content")
root_node << Tree::TreeNode.new("CHILD1", "Child1 Content") << Tree::TreeNode.new("GRANDCHILD1", "GrandChild1 Content")
root_node << Tree::TreeNode.new("CHILD2", "Child2 Content")
puts root_node.find {|node| node.name == "ROOT"} || "Not Found" # Find the current node itself
puts root_node.find {|node| node.name == "CHILD1"} || "Not Found" # Find another node in the collection
end
In this example, both the current node as well as another arbitrary node within the tree collection are found using TreeNode#find
.
from rubytree.
Again, Anupam, thanks for your usual comprehensive response!
- Pito Salas
On December 19, 2013 at 10:53:53 PM, Anupam Sengupta ([email protected]) wrote:
The each method is actually required in order for Enumerable to work. See details in the Enumerable module documentation.
This article describes the rationale behind Enumerable, and how to use it, in more detail.
As you can see from the method documentation for find, the intent of this method is to search the whole collection, and in the specific case for RubyTree, will definitely use the same semantics for the collection as TreeNode#each, i.e., will start searching from the node itself.
Perhaps an example will help:
require "rubytree"
if FILE == $0
root_node = Tree::TreeNode.new("ROOT", "Root Content")
root_node << Tree::TreeNode.new("CHILD1", "Child1 Content") << Tree::TreeNode.new("GRANDCHILD1", "GrandChild1 Content")
root_node << Tree::TreeNode.new("CHILD2", "Child2 Content")
puts root_node.find {|node| node.name == "ROOT"} || "Not Found" # Find the current node itself
puts root_node.find {|node| node.name == "CHILD1"} || "Not Found" # Find another node in the collection
end
In this example, both the current node as well as another arbitrary node within the tree collection are found using TreeNode#find.
—
Reply to this email directly or view it on GitHub.
from rubytree.
Related Issues (20)
- `#from_hash` in the `HashConverter` does not accept `HashWithIndifferentAccess` data type
- Serious bug in Tree::TreeNode#node_depth HOT 4
- undefined method `replace_with' HOT 3
- Performance issues HOT 3
- Get Node Path HOT 4
- Inifinite recursion when tree object used in RSpec expectations HOT 1
- find & findAll in tree HOT 2
- print_tree is undefined while running the example_basic.rb HOT 3
- Reconsider Using structured_warnings HOT 8
- JSON.parse not compiling to a Tree::TreeNode HOT 3
- Ruby 2.4 issue with structured_warnings dependency
- printTree OR print_tree? HOT 1
- Bump to JSON v.2 HOT 3
- Allow input of a custom IO for print_tree HOT 1
- calling 'protected' without arguments inside a method generates a StructuredWarnings::BuiltInWarning HOT 3
- camel_case_method_handler.rb generate warning in ruby 3.0.* HOT 3
- structured_warnings breaks Logger.warn HOT 3
- Please release gem 1.0.1 for Ruby 2.7 HOT 4
- Behaviour of method `#<=>` may need update
- Clarification of the used BSD licence HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rubytree.