oofile 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/COPYING +1 -1
- data/lib/oofile/filesystem.rb +11 -4
- data/test/filesystem_test.rb +15 -0
- metadata +4 -4
data/COPYING
CHANGED
data/lib/oofile/filesystem.rb
CHANGED
@@ -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
|
-
|
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
|
data/test/filesystem_test.rb
CHANGED
@@ -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:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
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
|
18
|
+
date: 2011-03-02 00:00:00 +00:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|