Class: DirTreeWalker

Inherits:
Object
  • Object
show all
Defined in:
lib/treevisitor/dir_tree_walker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dirname) ⇒ DirTreeWalker

Returns a new instance of DirTreeWalker.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/treevisitor/dir_tree_walker.rb', line 3

def initialize( dirname )
  @dirname = dirname
  unless File.directory?( dirname )
    raise "#{dirname} is not a directory!"
  end

  @visitor = nil

  #
  # pattern
  #
  @ignore_dir_patterns = []
  @ignore_file_patterns = []

  @inspect_file_patterns = []

  #
  # options
  #
  @visit_leaf = true
end

Instance Attribute Details

#visit_leafObject

Options



52
53
54
# File 'lib/treevisitor/dir_tree_walker.rb', line 52

def visit_leaf
  @visit_leaf
end

Instance Method Details

#add_ignore_dir(pattern) ⇒ Object



33
34
35
# File 'lib/treevisitor/dir_tree_walker.rb', line 33

def add_ignore_dir( pattern )
  @ignore_dir_patterns << pattern
end

#add_ignore_file(pattern) ⇒ Object



37
38
39
# File 'lib/treevisitor/dir_tree_walker.rb', line 37

def add_ignore_file( pattern )
  @ignore_file_patterns << pattern
end

#add_ignore_pattern(pattern) ⇒ Object

Pattern



28
29
30
31
# File 'lib/treevisitor/dir_tree_walker.rb', line 28

def add_ignore_pattern(pattern)
  @ignore_dir_patterns << pattern
  @ignore_file_patterns << pattern
end

#add_inspect_file(pattern) ⇒ Object

quali file bisogna prendere in considerazione inspect opposto di ignore :-)



45
46
47
# File 'lib/treevisitor/dir_tree_walker.rb', line 45

def add_inspect_file( pattern )
  @inspect_file_patterns << pattern
end

#ignore_dir?(dirname) ⇒ Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/treevisitor/dir_tree_walker.rb', line 57

def ignore_dir?( dirname )
  include?( @ignore_dir_patterns, File.basename( dirname ) )
end

#ignore_file?(filename) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/treevisitor/dir_tree_walker.rb', line 61

def ignore_file?( filename )
  include?( @ignore_file_patterns, File.basename( filename ) )
end

#inspect_file?(filename) ⇒ Boolean

Returns:

  • (Boolean)


65
66
67
68
# File 'lib/treevisitor/dir_tree_walker.rb', line 65

def inspect_file?( filename )
  return true if @inspect_file_patterns.empty?
  include?( @inspect_file_patterns, File.basename( filename ) )
end

#run(tree_node_visitor) ⇒ Object

return the visitor



73
74
75
76
77
# File 'lib/treevisitor/dir_tree_walker.rb', line 73

def run( tree_node_visitor )
  @visitor = tree_node_visitor
  process_directory( File.expand_path( @dirname ) )
  tree_node_visitor
end