oofile 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/COPYING CHANGED
@@ -1,4 +1,4 @@
1
- SiteBuilder Licence
1
+ OOFile Licence
2
2
 
3
3
  COPYRIGHT AND PERMISSION NOTICE
4
4
 
@@ -52,6 +52,10 @@ module OOFile
52
52
  FsEntry.from(File.join(@path, fs_entry))
53
53
  end
54
54
 
55
+ # by default we ignore entries that cannot be handled
56
+ def traverse(entry)
57
+ end
58
+
55
59
  end
56
60
 
57
61
  # I represent a file in the filesystem
@@ -65,6 +69,9 @@ module OOFile
65
69
 
66
70
  # I represent filesystem entries that have been detected but aren't supported.
67
71
  class UnknownEntry < FsEntry
72
+ def traverse(traverser)
73
+ traverser.traverse_unknown(self)
74
+ end
68
75
  end
69
76
 
70
77
  # I represent directories in the filesystem.
@@ -74,8 +81,7 @@ module OOFile
74
81
  def traverse(traverser)
75
82
  traverser.traverse_dir(self)
76
83
  Dir.new(@path).each do |stringpath|
77
- subentry = from(stringpath)
78
- subentry.traverse(traverser) unless stringpath=='.' || stringpath=='..'
84
+ from(stringpath).traverse(traverser) unless stringpath=='.' || stringpath=='..'
79
85
  end
80
86
  end
81
87
 
@@ -83,13 +89,14 @@ module OOFile
83
89
 
84
90
  # Visitor for traversing a filesystem
85
91
  class Traverser
86
- # callback when traversing a DirEntry object
87
92
  def traverse_dir(dir_entry)
88
93
  end
89
94
 
90
- # callback when traversing a FileEntry object
91
95
  def traverse_file(file_entry)
92
96
  end
97
+
98
+ def traverse_unknown(unknown_entry)
99
+ end
93
100
  end
94
101
 
95
102
  end
@@ -98,9 +98,24 @@ class DirEntryTest < Test::Unit::TestCase
98
98
  traverser.expects(:traverse_dir).once().with do |dir|
99
99
  OOFile::DirEntry==dir.class && TESTDATA_DIR==dir.path
100
100
  end
101
+ traverser.expects(:traverse_unknown).once().with do |unknown|
102
+ OOFile::UnknownEntry==unknown.class && 'pipeentry'==unknown.basename
103
+ end
101
104
 
102
105
  file = OOFile::FsEntry.from(TESTDATA_DIR)
103
106
  file.traverse(traverser)
104
107
  end
105
108
 
106
109
  end
110
+
111
+ class UnknownEntryTest < Test::Unit::TestCase
112
+ def test_traverse
113
+ traverser = OOFile::Traverser.new
114
+ traverser.expects(:traverse_unknown).once().with do |unknown|
115
+ OOFile::UnknownEntry==unknown.class && 'pipeentry'==unknown.basename
116
+ end
117
+ file = OOFile::FsEntry.from(File.join(TESTDATA_DIR,'pipeentry'))
118
+ file.traverse(traverser)
119
+ end
120
+
121
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oofile
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Dafydd Rees
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-28 00:00:00 +00:00
18
+ date: 2011-03-02 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency