file-find 0.3.1-universal-java-1.5 → 0.3.2-universal-java-1.5

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/CHANGES CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.3.2 - 20-Feb-2008
2
+ * Added support for the :mount option.
3
+ * Added some basic tests for the :mount option.
4
+
1
5
  == 0.3.1 - 9-Jan-2008
2
6
  * Now defaults to using Etc instead of Sys::Admin for implementations
3
7
  that don't support building C extensions, e.g. JRuby.
data/README CHANGED
@@ -35,6 +35,7 @@ few options, hasn't been updated in over six years and isn't packaged properly.
35
35
  * group (name or id)
36
36
  * maxdepth
37
37
  * mindepth
38
+ * mount
38
39
  * mtime
39
40
  * name (or 'pattern')
40
41
  * path
@@ -73,11 +74,6 @@ supported. These include the following options:
73
74
 
74
75
  * ok - This is not interactive software.
75
76
 
76
- = Options I may or may not support
77
-
78
- * local/mount/xdev - This will probably not be added until I'm satisfied with
79
- the sys-filesystem library. As of sys-filesystem 0.1.x, I'm not.
80
-
81
77
  = Known Issues
82
78
  The 'perm' option does not work on MS Windows, even for its limited subset of
83
79
  permissions, i.e. 664 and 666. This is arguably a bug in Ruby's
@@ -100,12 +96,13 @@ http://www.rubyforge.org/projects/shards.
100
96
  * Richard Clamp's File::Find::Rule Perl module for additional ideas and
101
97
  inspiration.
102
98
  * Bill Kleb for ideas regarding name, group and perm enhancements.
99
+ * Hal Fulton for his implementation of symbolic permissions.
103
100
 
104
101
  = License
105
102
  Ruby's
106
103
 
107
104
  = Copyright
108
- (C) 2007-2008, Daniel J. Berger, All Rights Reserved
105
+ (C) 2007-2009, Daniel J. Berger, All Rights Reserved
109
106
 
110
107
  = Author
111
108
  Daniel J. Berger
data/lib/file/find.rb CHANGED
@@ -11,7 +11,7 @@ end
11
11
 
12
12
  class File::Find
13
13
  # The version of this library
14
- VERSION = '0.3.1'
14
+ VERSION = '0.3.2'
15
15
 
16
16
  # :stopdoc:
17
17
  VALID_OPTIONS = %w/
@@ -23,6 +23,7 @@ class File::Find
23
23
  group
24
24
  maxdepth
25
25
  mindepth
26
+ mount
26
27
  mtime
27
28
  name
28
29
  pattern
@@ -89,11 +90,16 @@ class File::Find
89
90
  #
90
91
  attr_accessor :maxdepth
91
92
 
92
- # Limits search to a minimum depth into the tree relative to the starting
93
+ # Limits searches to a minimum depth into the tree relative to the starting
93
94
  # search directory.
94
95
  #
95
96
  attr_accessor :mindepth
96
97
 
98
+ # Limits searches to the same filesystem as the specified directory. For
99
+ # Windows users, this refers to the volume.
100
+ #
101
+ attr_accessor :mount
102
+
97
103
  # Limits searches by file modification time, where the value you supply is
98
104
  # the number of days back from the time that the File::Find#find method was
99
105
  # called.
@@ -166,6 +172,7 @@ class File::Find
166
172
  @group = nil
167
173
  @follow = true
168
174
  @inum = nil
175
+ @mount = nil
169
176
  @mtime = nil
170
177
  @perm = nil
171
178
  @prune = nil
@@ -179,6 +186,8 @@ class File::Find
179
186
 
180
187
  validate_and_set_options(options) unless options.empty?
181
188
 
189
+ @filesystem = File.stat(@mount).dev if @mount
190
+
182
191
  @path ||= Dir.pwd
183
192
  @name ||= '*'
184
193
  end
@@ -242,6 +251,10 @@ class File::Find
242
251
  glob.tr!(File::ALT_SEPARATOR, File::SEPARATOR)
243
252
  end
244
253
 
254
+ if @mount
255
+ next unless stat_info.dev == @filesystem
256
+ end
257
+
245
258
  if @maxdepth || @mindepth
246
259
  file_depth = file.split(File::SEPARATOR).length
247
260
  path_depth = @path.split(File::SEPARATOR).length
@@ -68,7 +68,7 @@ class TC_File_Find < Test::Unit::TestCase
68
68
  end
69
69
 
70
70
  def test_version
71
- assert_equal('0.3.1', File::Find::VERSION)
71
+ assert_equal('0.3.2', File::Find::VERSION)
72
72
  end
73
73
 
74
74
  def test_path
@@ -306,6 +306,12 @@ class TC_File_Find < Test::Unit::TestCase
306
306
  assert_equal([], @rule2.find)
307
307
  end
308
308
 
309
+ def test_mount_basic
310
+ assert_respond_to(@rule1, :mount)
311
+ assert_respond_to(@rule1, :mount=)
312
+ assert_nil(@rule1.mount)
313
+ end
314
+
309
315
  def test_name_basic
310
316
  assert_respond_to(@rule1, :name)
311
317
  assert_respond_to(@rule1, :name=)
metadata CHANGED
@@ -5,9 +5,9 @@ homepage: http://www.rubyforge.org/projects/shards
5
5
  executables: []
6
6
 
7
7
  version: !ruby/object:Gem::Version
8
- version: 0.3.1
8
+ version: 0.3.2
9
9
  post_install_message:
10
- date: 2009-01-09 07:00:00 +00:00
10
+ date: 2009-02-20 07:00:00 +00:00
11
11
  files:
12
12
  - lib/file
13
13
  - lib/file/find.rb
@@ -55,7 +55,7 @@ dependencies:
55
55
  - - '>='
56
56
  - !ruby/object:Gem::Version
57
57
  version: 2.0.2
58
- description: A better way to find files
58
+ description: A better, object oriented way to find files
59
59
  email: djberg96@gmail.com
60
60
  authors:
61
61
  - Daniel Berger