Giter Club home page Giter Club logo

Comments (2)

evolve75 avatar evolve75 commented on July 23, 2024

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.

pitosalas avatar pitosalas commented on July 23, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.