Class: BuildDirTreeVisitor
- Inherits:
-
TreeNodeVisitor
- Object
- TreeNodeVisitor
- BuildDirTreeVisitor
- Defined in:
- lib/treevisitor/visitors/build_dir_tree_visitor.rb
Overview
Buils a TreeNode from a filesystem directory It similar to CloneTreeNodeVisitor
Instance Attribute Summary collapse
-
#nr_directories ⇒ Object
readonly
Returns the value of attribute nr_directories.
-
#nr_files ⇒ Object
readonly
Returns the value of attribute nr_files.
-
#root ⇒ Object
readonly
Returns the value of attribute root.
Instance Method Summary collapse
- #enter_tree_node(pathname) ⇒ Object
- #exit_tree_node(pathname) ⇒ Object
-
#initialize ⇒ BuildDirTreeVisitor
constructor
A new instance of BuildDirTreeVisitor.
- #visit_leaf_node(pathname) ⇒ Object
Constructor Details
#initialize ⇒ BuildDirTreeVisitor
Returns a new instance of BuildDirTreeVisitor.
16 17 18 19 20 21 22 |
# File 'lib/treevisitor/visitors/build_dir_tree_visitor.rb', line 16 def initialize super @root = nil @stack = [] @nr_directories = 0 @nr_files = 0 end |
Instance Attribute Details
#nr_directories ⇒ Object (readonly)
Returns the value of attribute nr_directories.
13 14 15 |
# File 'lib/treevisitor/visitors/build_dir_tree_visitor.rb', line 13 def nr_directories @nr_directories end |
#nr_files ⇒ Object (readonly)
Returns the value of attribute nr_files.
14 15 16 |
# File 'lib/treevisitor/visitors/build_dir_tree_visitor.rb', line 14 def nr_files @nr_files end |
#root ⇒ Object (readonly)
Returns the value of attribute root.
11 12 13 |
# File 'lib/treevisitor/visitors/build_dir_tree_visitor.rb', line 11 def root @root end |
Instance Method Details
#enter_tree_node(pathname) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/treevisitor/visitors/build_dir_tree_visitor.rb', line 24 def enter_tree_node( pathname ) if @stack.empty? tree_node = TreeNode.new( File.basename( pathname ) ) @root = tree_node else tree_node = TreeNode.new( File.basename( pathname ), @stack.last ) end @nr_directories += 1 @stack.push( tree_node ) end |
#exit_tree_node(pathname) ⇒ Object
35 36 37 |
# File 'lib/treevisitor/visitors/build_dir_tree_visitor.rb', line 35 def exit_tree_node( pathname ) @stack.pop end |
#visit_leaf_node(pathname) ⇒ Object
39 40 41 42 43 |
# File 'lib/treevisitor/visitors/build_dir_tree_visitor.rb', line 39 def visit_leaf_node( pathname ) @nr_files += 1 # connect the leaf_node created to the last tree_node on the stack LeafNode.new( File.basename(pathname), @stack.last ) end |