rb-inotify 0.8.1 → 0.8.2

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.1
1
+ 0.8.2
data/lib/rb-inotify.rb CHANGED
@@ -13,5 +13,5 @@ module INotify
13
13
  # An array containing the version number of rb-inotify.
14
14
  # The numbers in the array are the major, minor, and patch versions,
15
15
  # respectively.
16
- VERSION = [0, 8, 1]
16
+ VERSION = [0, 8, 2]
17
17
  end
@@ -22,6 +22,11 @@ module INotify
22
22
  # # Nothing happens until you run the notifier!
23
23
  # notifier.run
24
24
  class Notifier
25
+ # A list of directories that should never be recursively watched.
26
+ #
27
+ # * Files in `/dev/fd` sometimes register as directories, but are not enumerable.
28
+ RECURSIVE_BLACKLIST = %w[/dev/fd]
29
+
25
30
  # A hash from {Watcher} ids to the instances themselves.
26
31
  #
27
32
  # @private
@@ -178,7 +183,7 @@ module INotify
178
183
  Dir.entries(path).each do |d|
179
184
  next if d == '.' || d == '..'
180
185
  d = File.join(path, d)
181
- watch(d, *flags, &callback) if File.directory?(d)
186
+ watch(d, *flags, &callback) if !RECURSIVE_BLACKLIST.include?(d) && File.directory?(d)
182
187
  end
183
188
 
184
189
  rec_flags = [:create, :moved_to]
@@ -229,7 +234,7 @@ module INotify
229
234
  rescue SystemCallError => er
230
235
  # EINVAL means that there's more data to be read
231
236
  # than will fit in the buffer size
232
- raise er unless er.errno == EINVAL || tries == 5
237
+ raise er unless er.errno == Errno::EINVAL::Errno || tries == 5
233
238
  size *= 2
234
239
  tries += 1
235
240
  retry
@@ -262,9 +267,13 @@ module INotify
262
267
 
263
268
  # Same as IO#readpartial, or as close as we need.
264
269
  def readpartial(size)
265
- buffer = FFI::MemoryPointer.new(:char, size)
266
- size_read = Native.read(fd, buffer, size)
267
- return buffer.read_string(size_read) if size_read >= 0
270
+ tries = 0
271
+ begin
272
+ tries += 1
273
+ buffer = FFI::MemoryPointer.new(:char, size)
274
+ size_read = Native.read(fd, buffer, size)
275
+ return buffer.read_string(size_read) if size_read >= 0
276
+ end while FFI.errno == Errno::EINTR::Errno && tries <= 5
268
277
 
269
278
  raise SystemCallError.new("Error reading inotify events" +
270
279
  case FFI.errno
data/rb-inotify.gemspec CHANGED
@@ -1,46 +1,44 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rb-inotify}
8
- s.version = "0.8.1"
8
+ s.version = "0.8.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nathan Weizenbaum"]
12
- s.date = %q{2010-08-08}
12
+ s.date = %q{2010-11-15}
13
13
  s.description = %q{A Ruby wrapper for Linux's inotify, using FFI}
14
14
  s.email = %q{nex342@gmail.com}
15
15
  s.extra_rdoc_files = [
16
16
  "README.md"
17
17
  ]
18
18
  s.files = [
19
- ".gitignore",
20
- ".yardopts",
21
- "MIT-LICENSE",
22
- "README.md",
23
- "Rakefile",
24
- "VERSION",
25
- "lib/rb-inotify.rb",
26
- "lib/rb-inotify/event.rb",
27
- "lib/rb-inotify/native.rb",
28
- "lib/rb-inotify/native/flags.rb",
29
- "lib/rb-inotify/notifier.rb",
30
- "lib/rb-inotify/watcher.rb",
31
- "rb-inotify.gemspec"
19
+ ".yardopts",
20
+ "MIT-LICENSE",
21
+ "README.md",
22
+ "Rakefile",
23
+ "VERSION",
24
+ "lib/rb-inotify.rb",
25
+ "lib/rb-inotify/event.rb",
26
+ "lib/rb-inotify/native.rb",
27
+ "lib/rb-inotify/native/flags.rb",
28
+ "lib/rb-inotify/notifier.rb",
29
+ "lib/rb-inotify/watcher.rb",
30
+ "rb-inotify.gemspec"
32
31
  ]
33
32
  s.homepage = %q{http://github.com/nex3/rb-notify}
34
- s.rdoc_options = ["--charset=UTF-8"]
35
33
  s.require_paths = ["lib"]
36
- s.rubygems_version = %q{1.3.5}
34
+ s.rubygems_version = %q{1.3.7}
37
35
  s.summary = %q{A Ruby wrapper for Linux's inotify, using FFI}
38
36
 
39
37
  if s.respond_to? :specification_version then
40
38
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
41
39
  s.specification_version = 3
42
40
 
43
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
41
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
44
42
  s.add_runtime_dependency(%q<ffi>, [">= 0.5.0"])
45
43
  s.add_development_dependency(%q<yard>, [">= 0.4.0"])
46
44
  else
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rb-inotify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ hash: 59
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 8
9
+ - 2
10
+ version: 0.8.2
5
11
  platform: ruby
6
12
  authors:
7
13
  - Nathan Weizenbaum
@@ -9,29 +15,41 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-08-08 00:00:00 -07:00
18
+ date: 2010-11-15 00:00:00 -08:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: ffi
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 11
30
+ segments:
31
+ - 0
32
+ - 5
33
+ - 0
23
34
  version: 0.5.0
24
- version:
35
+ type: :runtime
36
+ version_requirements: *id001
25
37
  - !ruby/object:Gem::Dependency
26
38
  name: yard
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
30
42
  requirements:
31
43
  - - ">="
32
44
  - !ruby/object:Gem::Version
45
+ hash: 15
46
+ segments:
47
+ - 0
48
+ - 4
49
+ - 0
33
50
  version: 0.4.0
34
- version:
51
+ type: :development
52
+ version_requirements: *id002
35
53
  description: A Ruby wrapper for Linux's inotify, using FFI
36
54
  email: nex342@gmail.com
37
55
  executables: []
@@ -41,7 +59,6 @@ extensions: []
41
59
  extra_rdoc_files:
42
60
  - README.md
43
61
  files:
44
- - .gitignore
45
62
  - .yardopts
46
63
  - MIT-LICENSE
47
64
  - README.md
@@ -59,26 +76,32 @@ homepage: http://github.com/nex3/rb-notify
59
76
  licenses: []
60
77
 
61
78
  post_install_message:
62
- rdoc_options:
63
- - --charset=UTF-8
79
+ rdoc_options: []
80
+
64
81
  require_paths:
65
82
  - lib
66
83
  required_ruby_version: !ruby/object:Gem::Requirement
84
+ none: false
67
85
  requirements:
68
86
  - - ">="
69
87
  - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 0
70
91
  version: "0"
71
- version:
72
92
  required_rubygems_version: !ruby/object:Gem::Requirement
93
+ none: false
73
94
  requirements:
74
95
  - - ">="
75
96
  - !ruby/object:Gem::Version
97
+ hash: 3
98
+ segments:
99
+ - 0
76
100
  version: "0"
77
- version:
78
101
  requirements: []
79
102
 
80
103
  rubyforge_project:
81
- rubygems_version: 1.3.5
104
+ rubygems_version: 1.3.7
82
105
  signing_key:
83
106
  specification_version: 3
84
107
  summary: A Ruby wrapper for Linux's inotify, using FFI
data/.gitignore DELETED
@@ -1,3 +0,0 @@
1
- /.yardoc
2
- /doc
3
- /pkg