treevisitor 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/README.md +104 -0
  2. data/VERSION.yml +1 -1
  3. data/examples/{directory_without_subdirectory.rb → directory_walker/directory_without_subdirectory.rb} +6 -4
  4. data/examples/{find_files.rb → directory_walker/find_files.rb} +4 -3
  5. data/examples/{print_files.rb → directory_walker/print_files.rb} +5 -8
  6. data/examples/protovis/directory_to_json_visitor.rb +13 -0
  7. data/examples/protovis/index.html +87 -0
  8. data/examples/protovis/protovis-d3.2.js +15269 -0
  9. data/examples/protovis/treevisitor.js +33 -0
  10. data/examples/protovis/treevisitor.png +0 -0
  11. data/lib/treevisitor/basic_tree_node_visitor.rb +29 -0
  12. data/lib/treevisitor/cli/cli_tree.rb +43 -35
  13. data/lib/treevisitor/directory_walker.rb +260 -0
  14. data/lib/treevisitor/tree_node_visitor.rb +33 -5
  15. data/lib/treevisitor/{dir_processor.rb → util/dir_processor.rb} +0 -0
  16. data/lib/treevisitor/visitors/block_tree_node_visitor.rb +1 -1
  17. data/lib/treevisitor/visitors/build_dir_tree_visitor.rb +1 -1
  18. data/lib/treevisitor/visitors/callback_tree_node_visitor.rb +1 -2
  19. data/lib/treevisitor/visitors/callback_tree_node_visitor2.rb +1 -1
  20. data/lib/treevisitor/visitors/clone_tree_node_visitor.rb +1 -1
  21. data/lib/treevisitor/visitors/depth_tree_node_visitor.rb +1 -1
  22. data/lib/treevisitor/visitors/directory_to_hash_visitor.rb +33 -0
  23. data/lib/treevisitor/visitors/flat_print_tree_node_visitors.rb +1 -1
  24. data/lib/treevisitor/visitors/print_dir_tree_visitor.rb +1 -1
  25. data/lib/treevisitor/visitors/print_tree_node_visitor.rb +1 -1
  26. data/lib/treevisitor.rb +24 -8
  27. data/spec/fixtures/{test_dir → test_dir_1}/.dir_with_dot/dummy.txt +0 -0
  28. data/spec/fixtures/{test_dir → test_dir_1}/dir.1/dir.1.2/file.1.2.1 +0 -0
  29. data/spec/fixtures/{test_dir → test_dir_1}/dir.1/file.1.1 +0 -0
  30. data/spec/fixtures/{test_dir → test_dir_1}/dir.2/file.2.1 +0 -0
  31. data/spec/spec_helper.rb +6 -9
  32. data/spec/treevisitor/cli/cli_tree_spec.rb +5 -5
  33. data/spec/treevisitor/directory_walker_spec.rb +61 -0
  34. data/spec/treevisitor/tree_dsl_spec.rb +57 -0
  35. data/spec/treevisitor/tree_dsl_with_derived_class1_spec.rb +53 -0
  36. data/spec/treevisitor/tree_dsl_with_derived_class_spec.rb +51 -0
  37. data/spec/treevisitor/{dir_processor_spec.rb → util/dir_processor_spec.rb} +2 -4
  38. data/spec/treevisitor/visitor_dsl_spec.rb +32 -0
  39. data/spec/treevisitor/visitors/block_tree_node_visitor_spec.rb +27 -0
  40. data/spec/treevisitor/visitors/callback_tree_node_visitor2_spec.rb +38 -0
  41. data/spec/treevisitor/visitors/callback_tree_node_visitors_spec.rb +29 -0
  42. data/spec/treevisitor/visitors/depth_tree_node_visitor_spec.rb +30 -0
  43. data/tasks/jeweler.rake +4 -8
  44. data/treevisitor.gemspec +114 -0
  45. metadata +48 -29
  46. data/README.rdoc +0 -42
  47. data/lib/treevisitor/dir_tree_walker.rb +0 -165
  48. data/spec/treevisitor/dir_tree_walker_spec.rb +0 -50
  49. data/spec/treevisitor/tree_node_dsl_spec.rb +0 -153
  50. data/spec/treevisitor/tree_node_visitor_spec.rb +0 -70
  51. data/tasks/rubyforge.rake +0 -28
data/spec/spec_helper.rb CHANGED
@@ -1,19 +1,16 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $LOAD_PATH.unshift(File.dirname(__FILE__))
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # std lib
4
+ #
5
+ require "stringio"
3
6
 
7
+ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
8
  require 'treevisitor'
5
9
  require 'treevisitor_cli'
6
-
7
10
  include TreeVisitor
8
11
 
9
12
  FIXTURES = File.expand_path( File.join( File.dirname(__FILE__), "fixtures" ) )
10
13
 
11
- # Spec::Runner.configure do |config|
12
- # end
13
-
14
- require 'test/unit'
15
- require "stringio"
16
-
17
14
  def with_stdout_captured
18
15
  old_stdout = $stdout
19
16
  out = StringIO.new
@@ -23,7 +23,7 @@ describe CliTree do
23
23
  it "should accepts switch -d (directories only)" do
24
24
  out = with_stdout_captured do
25
25
  args = %w{-d}
26
- args << File.join(FIXTURES, "test_dir")
26
+ args << File.join(FIXTURES, "test_dir_1")
27
27
  CliTree.new.parse_args(args)
28
28
  end
29
29
  # puts out
@@ -31,7 +31,7 @@ describe CliTree do
31
31
 
32
32
  out = with_stdout_captured do
33
33
  args = %w{-da}
34
- args << File.join(FIXTURES, "test_dir")
34
+ args << File.join(FIXTURES, "test_dir_1")
35
35
  CliTree.new.parse_args(args)
36
36
  end
37
37
  # puts out
@@ -41,7 +41,7 @@ describe CliTree do
41
41
  it "should accepts switch -a (all files)" do
42
42
  out = with_stdout_captured do
43
43
  args = %w{-a}
44
- args << File.join(FIXTURES, "test_dir")
44
+ args << File.join(FIXTURES, "test_dir_1")
45
45
  CliTree.new.parse_args(args)
46
46
  end
47
47
  # pp out
@@ -49,10 +49,10 @@ describe CliTree do
49
49
 
50
50
  out = with_stdout_captured do
51
51
  args = []
52
- args << File.join(FIXTURES, "test_dir")
52
+ args << File.join(FIXTURES, "test_dir_1")
53
53
  CliTree.new.parse_args(args)
54
54
  end
55
55
  # puts out
56
56
  out.split("\n").length.should == 9
57
57
  end
58
- end
58
+ end
@@ -0,0 +1,61 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.dirname(__FILE__), "..", "spec_helper")
3
+
4
+ describe DirTreeWalker do
5
+
6
+ it "should ignore files and directory" do
7
+ dtp = DirTreeWalker.new(".")
8
+
9
+ dtp.ignore(/^\./)
10
+ dtp.ignore_file?(".thumbnails").should be_true
11
+ dtp.ignore_dir?(".thumbnails").should be_true
12
+
13
+ dtp.ignore_dir("thumbnails")
14
+ dtp.ignore_dir?(".thumbnails").should be_true
15
+ dtp.ignore_dir?("thumbnails").should be_true
16
+ dtp.ignore_dir?("pippo").should be_false
17
+
18
+ dtp.ignore_file("xvpics")
19
+ dtp.ignore_file?("xvpics").should be_true
20
+
21
+ dtp.ignore("sub")
22
+ dtp.ignore_file?("[Dsube]").should be_false
23
+ dtp.ignore_dir?("[Dsube]").should be_false
24
+ end
25
+
26
+ it "should accept option :ignore" do
27
+ dtp = DirTreeWalker.new :ignore => /^\./
28
+
29
+ dtp.ignore_file?(".thumbnails").should be_true
30
+ dtp.ignore_dir?(".thumbnails").should be_true
31
+ end
32
+
33
+ it "should accept option :ignore" do
34
+ dtp = DirTreeWalker.new :ignore => ".git"
35
+
36
+ dtp.ignore_file?(".git").should be_true
37
+ dtp.ignore_dir?(".git").should be_true
38
+ end
39
+
40
+ it "should accumulate file names" do
41
+ dir_tree_walker = DirTreeWalker.new(File.join(FIXTURES, "test_dir_1"))
42
+
43
+ accumulator = []
44
+ visitor = BlockTreeNodeVisitor.new { |pathname| accumulator << File.basename(pathname) }
45
+ dir_tree_walker.run(visitor)
46
+ accumulator.length.should == 9
47
+ accumulator.sort.should == %w{ test_dir_1 dir.1 dir.1.2 file.1.2.1 file.1.1 dir.2 file.2.1 .dir_with_dot dummy.txt }.sort
48
+ end
49
+
50
+ it "should accumulate file names 2" do
51
+ dir_tree_walker = DirTreeWalker.new(File.join(FIXTURES, "test_dir_2"))
52
+ dir_tree_walker.ignore("sub")
53
+
54
+ accumulator = []
55
+ visitor = BlockTreeNodeVisitor.new { |pathname| accumulator << File.basename(pathname) }
56
+ dir_tree_walker.run(visitor)
57
+ accumulator.length.should == 2
58
+ accumulator.sort.should == %w{ [Dsube] test_dir_2 }.sort
59
+ end
60
+
61
+ end
@@ -0,0 +1,57 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.dirname(__FILE__), "..", "spec_helper")
3
+
4
+ describe "TreeNodeDsl" do
5
+
6
+ it "should build tree with dsl" do
7
+ tree = TreeNode.create do
8
+ node "root" do
9
+ leaf "l1"
10
+ leaf "l2"
11
+ node "sub" do
12
+ leaf "l3"
13
+ end
14
+ node "wo leaves"
15
+ end
16
+ end
17
+
18
+ # puts tree.to_str
19
+ out =<<EOS
20
+ root
21
+ |-- l1
22
+ |-- l2
23
+ |-- sub
24
+ | `-- l3
25
+ `-- wo leaves
26
+ EOS
27
+ tree.to_str.should == out
28
+ end
29
+
30
+ it "test_dsl_block_with_arg" do
31
+ tree = TreeNode.create do
32
+ node "root" do |node|
33
+ node.prefix_path=("pre/")
34
+ leaf "l1"
35
+ leaf "l2"
36
+ node "sub" do
37
+ leaf "l3" do |leaf|
38
+ end
39
+ end
40
+ node "woleaves"
41
+ end
42
+ end
43
+
44
+ # puts tree.to_str
45
+ out =<<EOS
46
+ root
47
+ |-- l1
48
+ |-- l2
49
+ |-- sub
50
+ | `-- l3
51
+ `-- woleaves
52
+ EOS
53
+ tree.to_str.should == out
54
+ tree.find("l3").path_with_prefix.should == "pre/root/sub/l3"
55
+ end
56
+
57
+ end
@@ -0,0 +1,53 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.dirname(__FILE__), "..", "spec_helper")
3
+
4
+ describe "Tree Node Dsl Derived Class with n-arg constructor" do
5
+
6
+ class ArgsTreeNode < TreeNode
7
+ attr_reader :description
8
+
9
+ def initialize(name, description, parent)
10
+ super(name, parent)
11
+ @description = description
12
+ end
13
+
14
+ def to_s
15
+ "a: #{description}"
16
+ end
17
+ end
18
+
19
+ class ArgsLeafNode < LeafNode
20
+ attr_reader :description
21
+
22
+ def initialize(name, description, parent)
23
+ super(name, parent)
24
+ @description = description
25
+ end
26
+
27
+ def to_s
28
+ "a: #{description}"
29
+ end
30
+ end
31
+
32
+ it "test_derivated_args" do
33
+ tree = TreeNode.create(ArgsTreeNode, ArgsLeafNode) do
34
+ node "root", "droot" do
35
+ leaf "l1", "dl1"
36
+ leaf "l2", "dl2"
37
+ node "sub", "dsub" do
38
+ leaf "l3", "dl3"
39
+ end
40
+ end
41
+ end
42
+
43
+ # puts tree.to_str
44
+ out =<<EOS
45
+ a: droot
46
+ |-- a: dl1
47
+ |-- a: dl2
48
+ `-- a: dsub
49
+ `-- a: dl3
50
+ EOS
51
+ tree.to_str.should == out
52
+ end
53
+ end
@@ -0,0 +1,51 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.dirname(__FILE__), "..", "spec_helper")
3
+
4
+ describe "Tree Node Dsl Derived Class with no-arg constructor " do
5
+
6
+ class DTreeNode < TreeNode
7
+ def to_s
8
+ "dt: #{content}"
9
+ end
10
+ end
11
+
12
+ class DLeafNode < LeafNode
13
+ def to_s
14
+ "dl: #{content}"
15
+ end
16
+ end
17
+
18
+ it "dsl with non-arg constructor" do
19
+ tree = TreeNode.create(DTreeNode, DLeafNode) do
20
+ node "root" do
21
+ leaf "l1"
22
+ leaf "l2"
23
+ node "sub" do
24
+ leaf "l3"
25
+ end
26
+ end
27
+ end
28
+
29
+ # puts tree.to_str
30
+ out =<<EOS
31
+ dt: root
32
+ |-- dl: l1
33
+ |-- dl: l2
34
+ `-- dt: sub
35
+ `-- dl: l3
36
+ EOS
37
+ tree.to_str.should == out
38
+
39
+ tree = DTreeNode.create(DLeafNode) do
40
+ node "root" do
41
+ leaf "l1"
42
+ leaf "l2"
43
+ node "sub" do
44
+ leaf "l3"
45
+ end
46
+ end
47
+ end
48
+ tree.to_str.should == out
49
+ end
50
+
51
+ end
@@ -1,15 +1,13 @@
1
1
  # -*- coding: utf-8 -*-
2
- require File.join(File.dirname(__FILE__), "..", "spec_helper")
2
+ require File.join(File.dirname(__FILE__), "..", "..", "spec_helper")
3
3
 
4
4
  describe DirProcessor do
5
5
 
6
6
  it do
7
7
  files = []
8
- dp = DirProcessor.new { |f| files << f }
8
+ dp = DirProcessor.new { |f| files << f }
9
9
  dp.process(FIXTURES)
10
10
  files.length.should == 3
11
11
  end
12
12
 
13
13
  end
14
-
15
-
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.dirname(__FILE__), "..", "spec_helper")
3
+
4
+ describe TreeNodeVisitor do
5
+
6
+ it "should initialize correctly" do
7
+ visitor = TreeNodeVisitor.new do
8
+
9
+ on_enter_tree_node do |tree_node|
10
+ @entered_node = true
11
+ end
12
+
13
+ on_exit_tree_node do |tree_node|
14
+ @exit_node = true
15
+ end
16
+
17
+ on_visit_leaf_node do |leaf_node|
18
+ @visit_leaf = true
19
+ end
20
+ end
21
+
22
+ visitor.enter_tree_node(nil)
23
+ visitor.instance_eval{ @entered_node }.should be_true
24
+
25
+ visitor.exit_tree_node(nil)
26
+ visitor.instance_eval{ @exit_node }.should be_true
27
+
28
+ visitor.visit_leaf_node(nil)
29
+ visitor.instance_eval{ @visit_leaf }.should be_true
30
+ end
31
+
32
+ end
@@ -0,0 +1,27 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.dirname(__FILE__), "..", "..", "spec_helper")
3
+
4
+ require 'treevisitor/visitors/block_tree_node_visitor'
5
+
6
+ describe "Tree Node Visitors" do
7
+
8
+ before do
9
+ ta = TreeNode.new( "a", nil )
10
+ LeafNode.new("1", ta )
11
+ LeafNode.new("2", ta )
12
+
13
+ tb = TreeNode.new( "b", ta )
14
+ LeafNode.new( "3", tb )
15
+
16
+ @tree = ta
17
+ end
18
+
19
+ it BlockTreeNodeVisitor do
20
+ accumulator = []
21
+ visitor = BlockTreeNodeVisitor.new { |node| accumulator << node.content}
22
+ @tree.accept( visitor )
23
+ accumulator.length.should == 5
24
+ accumulator.should == %w{ a 1 2 b 3 }
25
+ end
26
+
27
+ end
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.dirname(__FILE__), "..", "..", "spec_helper")
3
+
4
+ require 'treevisitor/visitors/callback_tree_node_visitor2'
5
+
6
+ describe "Tree Node Visitors" do
7
+
8
+ before do
9
+ ta = TreeNode.new( "a", nil )
10
+ LeafNode.new("1", ta )
11
+ LeafNode.new("2", ta )
12
+
13
+ tb = TreeNode.new( "b", ta )
14
+ LeafNode.new( "3", tb )
15
+
16
+ @tree = ta
17
+ end
18
+
19
+ it CallbackTreeNodeVisitor2 do
20
+ visitor = CallbackTreeNodeVisitor2.new
21
+ visitor.on_enter_tree_node{ |tree_node, new_parent_node|
22
+ TreeNode.new("n" + tree_node.content, new_parent_node)
23
+ }
24
+ visitor.on_visit_leaf_node{ |leaf_node, new_parent_node|
25
+ LeafNode.new( "n" + leaf_node.content, new_parent_node )
26
+ }
27
+ @tree.accept( visitor )
28
+ new_root = visitor.root
29
+ new_root.content.should == "n" + @tree.content
30
+
31
+ accumulator = []
32
+ visitor = BlockTreeNodeVisitor.new { |node| accumulator << node.content}
33
+ new_root.accept( visitor )
34
+ accumulator.length.should == 5
35
+ accumulator.should == %w{ na n1 n2 nb n3 }
36
+ end
37
+
38
+ end
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.dirname(__FILE__), "..", "..", "spec_helper")
3
+
4
+ require 'treevisitor/visitors/callback_tree_node_visitor'
5
+
6
+ describe "Tree Node Visitors" do
7
+
8
+ before do
9
+ ta = TreeNode.new( "a", nil )
10
+ LeafNode.new("1", ta )
11
+ LeafNode.new("2", ta )
12
+
13
+ tb = TreeNode.new( "b", ta )
14
+ LeafNode.new( "3", tb )
15
+
16
+ @tree = ta
17
+ end
18
+
19
+ it CallbackTreeNodeVisitor do
20
+ accumulator = []
21
+ visitor = CallbackTreeNodeVisitor.new
22
+ visitor.on_enter_tree_node{ |tree_node| accumulator << tree_node.content }
23
+ visitor.on_visit_leaf_node{ |leaf_node| accumulator << leaf_node.content }
24
+ @tree.accept( visitor )
25
+ accumulator.length.should == 5
26
+ accumulator.should == %w{ a 1 2 b 3 }
27
+ end
28
+
29
+ end
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.dirname(__FILE__), "..", "..", "spec_helper")
3
+
4
+ require 'treevisitor/visitors/depth_tree_node_visitor'
5
+ require 'treevisitor/visitors/clone_tree_node_visitor'
6
+
7
+ describe "Tree Node Visitors" do
8
+
9
+ before do
10
+ ta = TreeNode.new( "a", nil )
11
+ LeafNode.new("1", ta )
12
+ LeafNode.new("2", ta )
13
+
14
+ tb = TreeNode.new( "b", ta )
15
+ LeafNode.new( "3", tb )
16
+
17
+ @tree = ta
18
+ end
19
+
20
+ it DepthTreeNodeVisitor do
21
+ visitor = DepthTreeNodeVisitor.new
22
+ @tree.accept( visitor )
23
+ visitor.depth.should == 0
24
+
25
+ visitor = CloneTreeNodeVisitor.new
26
+ @tree.accept( visitor )
27
+ visitor.cloned_root.nr_nodes.should == @tree.nr_nodes
28
+ end
29
+
30
+ end
data/tasks/jeweler.rake CHANGED
@@ -1,8 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
- #
3
- # jeweler
4
- #
5
-
6
2
  begin
7
3
  require 'jeweler'
8
4
  Jeweler::Tasks.new do |gem|
@@ -19,9 +15,8 @@ begin
19
15
  gem.homepage = "http://github.com/tokiro/treevisitor"
20
16
 
21
17
  #
22
- # dependecies
18
+ # dependencies automatically loaded from Gemfile
23
19
  #
24
- gem.add_development_dependency "rspec"
25
20
 
26
21
  #
27
22
  # bin
@@ -31,10 +26,10 @@ begin
31
26
  #
32
27
  # files
33
28
  #
34
- gem.files = %w{LICENSE README.rdoc Rakefile VERSION.yml dircat.gemspec}
29
+ gem.files = %w{LICENSE.txt README.md Rakefile VERSION.yml treevisitor.gemspec}
35
30
  gem.files.concat Dir['lib/**/*.rb']
36
31
  gem.files.concat Dir['tasks/**/*.rake']
37
- gem.files.concat Dir['examples/*.rb']
32
+ gem.files.concat Dir['examples/**/*']
38
33
 
39
34
 
40
35
  #
@@ -42,6 +37,7 @@ begin
42
37
  #
43
38
  gem.test_files = Dir['spec/**/*.rb']
44
39
  gem.test_files.concat Dir['spec/fixtures/**/*']
40
+ gem.test_files.concat Dir['spec/fixtures/**/.gitkeep']
45
41
  gem.test_files.concat Dir['spec/fixtures/**/.dir_with_dot/*']
46
42
 
47
43
  #
@@ -0,0 +1,114 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{treevisitor}
8
+ s.version = "0.1.6"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Tokiro"]
12
+ s.date = %q{2011-01-21}
13
+ s.default_executable = %q{tree.rb}
14
+ s.description = %q{ Implementation of visitor design pattern. It contains a 'tree.rb'
15
+ command line clone of the tree unix tool.
16
+ }
17
+ s.email = %q{tokiro.oyama@gmail.com}
18
+ s.executables = ["tree.rb"]
19
+ s.extra_rdoc_files = [
20
+ "LICENSE.txt",
21
+ "README.md"
22
+ ]
23
+ s.files = [
24
+ "LICENSE.txt",
25
+ "README.md",
26
+ "Rakefile",
27
+ "VERSION.yml",
28
+ "examples/directory_walker/directory_without_subdirectory.rb",
29
+ "examples/directory_walker/find_files.rb",
30
+ "examples/directory_walker/print_files.rb",
31
+ "examples/protovis/directory_to_json_visitor.rb",
32
+ "examples/protovis/index.html",
33
+ "examples/protovis/protovis-d3.2.js",
34
+ "examples/protovis/treevisitor.js",
35
+ "examples/protovis/treevisitor.png",
36
+ "lib/tree_visitor.rb",
37
+ "lib/treevisitor.rb",
38
+ "lib/treevisitor/abs_node.rb",
39
+ "lib/treevisitor/basic_tree_node_visitor.rb",
40
+ "lib/treevisitor/cli/cli_tree.rb",
41
+ "lib/treevisitor/directory_walker.rb",
42
+ "lib/treevisitor/leaf_node.rb",
43
+ "lib/treevisitor/tree_node.rb",
44
+ "lib/treevisitor/tree_node_visitor.rb",
45
+ "lib/treevisitor/util/dir_processor.rb",
46
+ "lib/treevisitor/visitors/block_tree_node_visitor.rb",
47
+ "lib/treevisitor/visitors/build_dir_tree_visitor.rb",
48
+ "lib/treevisitor/visitors/callback_tree_node_visitor.rb",
49
+ "lib/treevisitor/visitors/callback_tree_node_visitor2.rb",
50
+ "lib/treevisitor/visitors/clone_tree_node_visitor.rb",
51
+ "lib/treevisitor/visitors/depth_tree_node_visitor.rb",
52
+ "lib/treevisitor/visitors/directory_to_hash_visitor.rb",
53
+ "lib/treevisitor/visitors/flat_print_tree_node_visitors.rb",
54
+ "lib/treevisitor/visitors/print_dir_tree_visitor.rb",
55
+ "lib/treevisitor/visitors/print_tree_node_visitor.rb",
56
+ "lib/treevisitor_cli.rb",
57
+ "tasks/jeweler.rake",
58
+ "tasks/rspec.rake",
59
+ "tasks/yard.rake",
60
+ "treevisitor.gemspec"
61
+ ]
62
+ s.homepage = %q{http://github.com/tokiro/treevisitor}
63
+ s.require_paths = ["lib"]
64
+ s.rubygems_version = %q{1.3.7}
65
+ s.summary = %q{Implementation of visitor design pattern}
66
+ s.test_files = [
67
+ "spec/fixtures/test_dir_1/.dir_with_dot/dummy.txt",
68
+ "spec/fixtures/test_dir_1/dir.1/dir.1.2/file.1.2.1",
69
+ "spec/fixtures/test_dir_1/dir.1/file.1.1",
70
+ "spec/fixtures/test_dir_1/dir.2/file.2.1",
71
+ "spec/spec_helper.rb",
72
+ "spec/treevisitor/cli/cli_tree_spec.rb",
73
+ "spec/treevisitor/directory_walker_spec.rb",
74
+ "spec/treevisitor/tree_dsl_spec.rb",
75
+ "spec/treevisitor/tree_dsl_with_derived_class1_spec.rb",
76
+ "spec/treevisitor/tree_dsl_with_derived_class_spec.rb",
77
+ "spec/treevisitor/tree_node_spec.rb",
78
+ "spec/treevisitor/util/dir_processor_spec.rb",
79
+ "spec/treevisitor/visitor_dsl_spec.rb",
80
+ "spec/treevisitor/visitors/block_tree_node_visitor_spec.rb",
81
+ "spec/treevisitor/visitors/callback_tree_node_visitor2_spec.rb",
82
+ "spec/treevisitor/visitors/callback_tree_node_visitors_spec.rb",
83
+ "spec/treevisitor/visitors/depth_tree_node_visitor_spec.rb"
84
+ ]
85
+
86
+ if s.respond_to? :specification_version then
87
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
88
+ s.specification_version = 3
89
+
90
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
91
+ s.add_runtime_dependency(%q<json>, [">= 0"])
92
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
93
+ s.add_development_dependency(%q<rake>, [">= 0"])
94
+ s.add_development_dependency(%q<yard>, [">= 0"])
95
+ s.add_development_dependency(%q<bundler>, [">= 0"])
96
+ s.add_development_dependency(%q<rspec>, [">= 0"])
97
+ else
98
+ s.add_dependency(%q<json>, [">= 0"])
99
+ s.add_dependency(%q<jeweler>, [">= 0"])
100
+ s.add_dependency(%q<rake>, [">= 0"])
101
+ s.add_dependency(%q<yard>, [">= 0"])
102
+ s.add_dependency(%q<bundler>, [">= 0"])
103
+ s.add_dependency(%q<rspec>, [">= 0"])
104
+ end
105
+ else
106
+ s.add_dependency(%q<json>, [">= 0"])
107
+ s.add_dependency(%q<jeweler>, [">= 0"])
108
+ s.add_dependency(%q<rake>, [">= 0"])
109
+ s.add_dependency(%q<yard>, [">= 0"])
110
+ s.add_dependency(%q<bundler>, [">= 0"])
111
+ s.add_dependency(%q<rspec>, [">= 0"])
112
+ end
113
+ end
114
+