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 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