fynd 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Fynd
2
2
 
3
- I found GNU find to be slow, so I made it slower.
3
+ I found GNU find to be slow, so I made it slower by rewriting it in Ruby.
4
+
5
+ Fynd is heavily inspired by the, uh... find command, I guess.
4
6
 
5
7
  ## Is it any good?
6
8
 
@@ -23,7 +25,7 @@ find("/var/log").iname("system").type(:file).files
23
25
  => ["/var/log/system.log", "/var/log/system.log.0.bz2", "/var/log/system.log.1.bz2", "/var/log/system.log.2.bz2", "/var/log/system.log.3.bz2", "/var/log/system.log.4.bz2", "/var/log/system.log.5.bz2", "/var/log/system.log.6.bz2", "/var/log/system.log.7.bz2"]
24
26
  ```
25
27
 
26
- You can keep pass the files to a block [if you're a bad enough dude](http://i.imgur.com/x37pI.jpg).
28
+ You can even pass the files to a block.
27
29
 
28
30
  ```ruby
29
31
  require 'fynd'
data/lib/fynd/criteria.rb CHANGED
@@ -22,10 +22,10 @@ module Fynd
22
22
  # For every path...
23
23
  paths.each do |path|
24
24
  # Pull out all directories
25
- # dirs = Dir.glob(File.expand_path(path)).select { |f| File.stat(f).directory? }
25
+ # dirs = Dir.glob(File.expand_path(path)).select { |f| File.lstat(f).directory? }
26
26
  # Shove all found files into the collection
27
27
  # @sieve.collection << Dir.glob(File.expand_path(path))
28
- @sieve.collection << Find.find(path).to_a
28
+ @sieve.collection << Find.find(File.expand_path(path)).to_a
29
29
  end
30
30
 
31
31
  # Flatten it and strip out non-unique files
data/lib/fynd/tests.rb CHANGED
@@ -18,7 +18,7 @@ module Fynd::Tests
18
18
  # effect, the access time of the file it points to is always used.
19
19
  def anewer(other)
20
20
  files.select! do |file|
21
- File.stat(file).atime > File.stat(other).atime
21
+ File.lstat(file).atime > File.lstat(other).atime
22
22
  end
23
23
  end
24
24
 
@@ -32,7 +32,7 @@ module Fynd::Tests
32
32
  time = Time.now
33
33
 
34
34
  files.select! do |file|
35
- atime = File.stat(file).atime
35
+ atime = File.lstat(file).atime
36
36
 
37
37
  case comparer
38
38
  when '+'
@@ -60,7 +60,7 @@ module Fynd::Tests
60
60
  # points to is always used.
61
61
  def cnewer(other)
62
62
  files.select! do |file|
63
- File.stat(file).ctime > File.stat(other).ctime
63
+ File.lstat(file).ctime > File.lstat(other).ctime
64
64
  end
65
65
  end
66
66
 
@@ -73,7 +73,7 @@ module Fynd::Tests
73
73
  # File is empty and is either a regular file or a directory.
74
74
  def empty
75
75
  files.select! do |file|
76
- File.stat(file).zero?
76
+ File.lstat(file).zero?
77
77
  end
78
78
  end
79
79
 
@@ -89,14 +89,14 @@ module Fynd::Tests
89
89
  # File's numeric group ID is n.
90
90
  def gid(n)
91
91
  files.select! do |file|
92
- File.stat(file).gid == n.to_i
92
+ File.lstat(file).gid == n.to_i
93
93
  end
94
94
  end
95
95
 
96
96
  # File belongs to group gname (numeric group ID allowed).
97
97
  def group(name)
98
98
  files.select! do |file|
99
- gid = File.stat(file).gid
99
+ gid = File.lstat(file).gid
100
100
  Etc.getgrgid(gid).name == name
101
101
  end
102
102
  end
@@ -124,7 +124,7 @@ module Fynd::Tests
124
124
  # -samefile test instead.
125
125
  def inum(n)
126
126
  files.select! do |file|
127
- File.stat(file).ino == n.to_i
127
+ File.lstat(file).ino == n.to_i
128
128
  end
129
129
  end
130
130
 
@@ -184,7 +184,7 @@ module Fynd::Tests
184
184
  # No user corresponds to file's numeric user ID.
185
185
  def nouser
186
186
  files.select! do |file|
187
- uid = File.stat(file).uid
187
+ uid = File.lstat(file).uid
188
188
  begin
189
189
  Etc.getpwuid(uid)
190
190
  false
@@ -197,7 +197,7 @@ module Fynd::Tests
197
197
  # No group corresponds to file's numeric group ID.
198
198
  def nogroup
199
199
  files.select! do |file|
200
- gid = File.stat(file).gid
200
+ gid = File.lstat(file).gid
201
201
  begin
202
202
  Etc.getgrgid(gid)
203
203
  false
@@ -302,9 +302,9 @@ module Fynd::Tests
302
302
  files.select! do |file|
303
303
  case c.to_s
304
304
  when 'f', 'file'
305
- File.stat(file).file?
305
+ File.lstat(file).file?
306
306
  when 'd', 'dir', 'directory'
307
- File.stat(file).directory?
307
+ File.lstat(file).directory?
308
308
  else
309
309
  false
310
310
  end
@@ -314,7 +314,7 @@ module Fynd::Tests
314
314
  # File's numeric user ID is n.
315
315
  def uid(n)
316
316
  files.select! do |file|
317
- File.stat(file).uid == n.to_i
317
+ File.lstat(file).uid == n.to_i
318
318
  end
319
319
  end
320
320
 
@@ -325,7 +325,7 @@ module Fynd::Tests
325
325
  # File is owned by user uname (numeric user ID allowed).
326
326
  def user(name)
327
327
  files.select! do |file|
328
- uid = File.stat(file).uid.to_i
328
+ uid = File.lstat(file).uid.to_i
329
329
  Etc.getpwuid(uid).name == name
330
330
  end
331
331
  end
data/lib/fynd/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Fynd
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fynd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -64,7 +64,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
64
64
  version: '0'
65
65
  segments:
66
66
  - 0
67
- hash: -2451814936160929685
67
+ hash: 4151080051906730584
68
68
  required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  none: false
70
70
  requirements:
@@ -73,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
73
  version: '0'
74
74
  segments:
75
75
  - 0
76
- hash: -2451814936160929685
76
+ hash: 4151080051906730584
77
77
  requirements: []
78
78
  rubyforge_project:
79
79
  rubygems_version: 1.8.24