file-find 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: file-find
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Berger
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-09 00:00:00 -07:00
12
+ date: 2009-02-20 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -32,7 +32,7 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: 1.4.4
34
34
  version:
35
- description: A better way to find files
35
+ description: A better, object oriented way to find files
36
36
  email: djberg96@gmail.com
37
37
  executables: []
38
38
 
@@ -51,6 +51,8 @@ files:
51
51
  - MANIFEST
52
52
  has_rdoc: true
53
53
  homepage: http://www.rubyforge.org/projects/shards
54
+ licenses: []
55
+
54
56
  post_install_message:
55
57
  rdoc_options: []
56
58
 
@@ -73,7 +75,7 @@ requirements: []
73
75
  rubyforge_project: shards
74
76
  rubygems_version: 1.3.1
75
77
  signing_key:
76
- specification_version: 2
78
+ specification_version: 3
77
79
  summary: A better way to find files
78
80
  test_files:
79
81
  - test/test_file_find.rb