rb-kqueue 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 17d3f6e0c04fea13fd34ab65ff0d7248e02535e7
4
- data.tar.gz: 47c725707074d7452391a24a4ddbfe9c6f22c9b4
2
+ SHA256:
3
+ metadata.gz: 0f24844743c7766edc2ddfa6c7c125a5ff7419eac128d6695fcb8da70c07d66b
4
+ data.tar.gz: '008dd0f2124471e3a190cb80458774076d6ed5f1cbba1dc020f8e6a0f3250eb8'
5
5
  SHA512:
6
- metadata.gz: 0d10f7f56be61427716f439cbe99f908eb9de2f64d99ed475e360dc256a7c6c8af2a258d1e3c7eb9f320e87b7b4584f7b1e8dfd7e2dd99e62de5bacc45ff0f87
7
- data.tar.gz: 4bb2578457195f0706bf08609ad669ae1cabd630d0c0962542ec8ef07142783b5c06eafdbf104c19553cde622397e46d776450dbbf4ced3bd8bfa1e252cd3e71
6
+ metadata.gz: d86c4ef6d17773c5ca1b6567ea9be15b7c2b179bac98253d7c2d230dea89d6ba8c0c20badd335e3944843eb1902b077fb0690eb392ba0b6cf357c8362521676d
7
+ data.tar.gz: bbdde67f0d98268d46c7b4c8a13fe0497a017671efdfbab0c7754f577c2a58aa4e8397603f033ad316fb4f28633a6fe78e1ee21c1e3bb71c2c62fc4b6ba0fa7b
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ rb-kqueue
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-2.6.5
@@ -3,6 +3,11 @@ module KQueue
3
3
  # Each {Watcher} can fire many events,
4
4
  # which are passed to that Watcher's callback.
5
5
  class Event
6
+
7
+ # Exception raised on an attempt to construct an {Event}
8
+ # from a native event with unexpected field values.
9
+ class UnexpectedEvent < Exception; end
10
+
6
11
  # Some integer data, the interpretation of which
7
12
  # is specific to each individual {Watcher}.
8
13
  # For specifics, see the individual Watcher subclasses.
@@ -64,7 +69,11 @@ module KQueue
64
69
  @native = native
65
70
  @queue = queue
66
71
  @data = @native[:data]
67
- @filter = KQueue::Native::Flags.from_flag("EVFILT", @native[:filter])
72
+ begin
73
+ @filter = KQueue::Native::Flags.from_flag("EVFILT", @native[:filter])
74
+ rescue Native::Flags::FlagNotFound
75
+ raise UnexpectedEvent
76
+ end
68
77
  @flags = Native::Flags.from_mask("EV", @native[:flags])
69
78
 
70
79
  KQueue.handle_error @native[:data] if @flags.include?(:error)
@@ -7,48 +7,48 @@ module KQueue
7
7
  module Flags
8
8
  # Filters
9
9
  if FFI::Platform::IS_FREEBSD
10
- EVFILT_READ = -1
11
- EVFILT_WRITE = -2
12
- EVFILT_AIO = -3 # Attached to aio requests
13
- EVFILT_VNODE = -4 # Attached to vnodes
14
- EVFILT_PROC = -5 # Attached to struct proc
15
- EVFILT_SIGNAL = -6 # Attached to struct proc
16
- EVFILT_TIMER = -7 # Timers
17
- EVFILT_PROCDESC = -8 # Attached to process descriptors
18
- EVFILT_FS = -9 # Filesystem events
19
- EVFILT_LIO = -10 # Attached to lio requests
20
- EVFILT_USER = -11 # User events
21
- EVFILT_SENDFILE = -12 # Attached to sendfile requests
22
- EVFILT_SYSCOUNT = 12
10
+ EVFILT_READ = -1
11
+ EVFILT_WRITE = -2
12
+ EVFILT_AIO = -3 # Attached to aio requests
13
+ EVFILT_VNODE = -4 # Attached to vnodes
14
+ EVFILT_PROC = -5 # Attached to struct proc
15
+ EVFILT_SIGNAL = -6 # Attached to struct proc
16
+ EVFILT_TIMER = -7 # Timers
17
+ EVFILT_PROCDESC = -8 # Attached to process descriptors
18
+ EVFILT_FS = -9 # Filesystem events
19
+ EVFILT_LIO = -10 # Attached to lio requests
20
+ EVFILT_USER = -11 # User events
21
+ EVFILT_SENDFILE = -12 # Attached to sendfile requests
22
+ EVFILT_SYSCOUNT = 12
23
23
  elsif FFI::Platform::IS_NETBSD
24
- EVFILT_READ = 0
25
- EVFILT_WRITE = 1
26
- EVFILT_AIO = 2 # Attached to aio requests
27
- EVFILT_VNODE = 3 # Attached to vnodes
28
- EVFILT_PROC = 4 # Attached to struct proc
29
- EVFILT_SIGNAL = 5 # Attached to struct proc
30
- EVFILT_TIMER = 6 # Arbitrary timer (in ms)
31
- EVFILT_SYSCOUNT = 7 # Number of filters
24
+ EVFILT_READ = 0
25
+ EVFILT_WRITE = 1
26
+ EVFILT_AIO = 2 # Attached to aio requests
27
+ EVFILT_VNODE = 3 # Attached to vnodes
28
+ EVFILT_PROC = 4 # Attached to struct proc
29
+ EVFILT_SIGNAL = 5 # Attached to struct proc
30
+ EVFILT_TIMER = 6 # Arbitrary timer (in ms)
31
+ EVFILT_SYSCOUNT = 7 # Number of filters
32
32
  elsif FFI::Platform::IS_OPENBSD
33
- EVFILT_READ = -1
34
- EVFILT_WRITE = -2
35
- EVFILT_AIO = -3 # Attached to aio requests
36
- EVFILT_VNODE = -4 # Attached to vnodes
37
- EVFILT_PROC = -5 # Attached to struct proc
38
- EVFILT_SIGNAL = -6 # Attached to struct proc
39
- EVFILT_TIMER = -7 # Timers
33
+ EVFILT_READ = -1
34
+ EVFILT_WRITE = -2
35
+ EVFILT_AIO = -3 # Attached to aio requests
36
+ EVFILT_VNODE = -4 # Attached to vnodes
37
+ EVFILT_PROC = -5 # Attached to struct proc
38
+ EVFILT_SIGNAL = -6 # Attached to struct proc
39
+ EVFILT_TIMER = -7 # Timers
40
40
  else
41
- EVFILT_READ = -1
42
- EVFILT_WRITE = -2
43
- EVFILT_AIO = -3 # Attached to aio requests
44
- EVFILT_VNODE = -4 # Attached to vnodes
45
- EVFILT_PROC = -5 # Attached to struct proc
46
- EVFILT_SIGNAL = -6 # Attached to struct proc
47
- EVFILT_TIMER = -7 # Timers
48
- EVFILT_MACHPORT = -8 # Mach portsets
49
- EVFILT_FS = -9 # Filesystem events
50
- EVFILT_USER = -10 # User events
51
- EVFILT_SESSION = -11 # Audit session events
41
+ EVFILT_READ = -1
42
+ EVFILT_WRITE = -2
43
+ EVFILT_AIO = -3 # Attached to aio requests
44
+ EVFILT_VNODE = -4 # Attached to vnodes
45
+ EVFILT_PROC = -5 # Attached to struct proc
46
+ EVFILT_SIGNAL = -6 # Attached to struct proc
47
+ EVFILT_TIMER = -7 # Timers
48
+ EVFILT_MACHPORT = -8 # Mach portsets
49
+ EVFILT_FS = -9 # Filesystem events
50
+ EVFILT_USER = -10 # User events
51
+ EVFILT_SESSION = -11 # Audit session events
52
52
  end
53
53
 
54
54
 
@@ -97,6 +97,9 @@ module KQueue
97
97
  NOTE_TIMER_NSECONDS = 0x00000004 # data is nanoseconds
98
98
  NOTE_TIMER_ABSOLUTE = 0x00000008 # absolute timeout
99
99
 
100
+ # Exception raised when a function fails to find a flag satisfying
101
+ # its given query.
102
+ class FlagNotFound < Exception; end
100
103
 
101
104
  # Converts a list of flags to the bitmask that the C API expects.
102
105
  #
@@ -143,6 +146,7 @@ module KQueue
143
146
  next unless c =~ re
144
147
  return c.to_s.sub("#{prefix}_", "").downcase.to_sym if const_get(c) == flag
145
148
  end
149
+ raise FlagNotFound
146
150
  end
147
151
  end
148
152
  end
@@ -359,7 +359,13 @@ module KQueue
359
359
  res = Native.kevent(@fd, nil, 0, eventlist, size, timeout)
360
360
 
361
361
  KQueue.handle_error if res < 0
362
- (0...res).map {|i| KQueue::Event.new(Native::KEvent.new(eventlist[i]), self)}
362
+ (0...res).map do |i|
363
+ begin
364
+ KQueue::Event.new(Native::KEvent.new(eventlist[i]), self)
365
+ rescue KQueue::Event::UnexpectedEvent
366
+ nil
367
+ end
368
+ end.compact
363
369
  end
364
370
  end
365
371
  end
@@ -1,3 +1,3 @@
1
1
  module KQueue
2
- VERSION = [0, 2, 5]
2
+ VERSION = [0, 2, 6]
3
3
  end
data/rb-kqueue.gemspec CHANGED
@@ -1,8 +1,3 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
5
-
6
1
  require File.expand_path('../lib/rb-kqueue/version', __FILE__)
7
2
 
8
3
  Gem::Specification.new do |gem|
@@ -11,23 +6,20 @@ Gem::Specification.new do |gem|
11
6
 
12
7
  gem.authors = ["Mathieu Arnold", "Nathan Weizenbaum"]
13
8
  gem.email = %q{mat@mat.cc nex342@gmail.com}
14
- gem.date = %q{2017-05-16}
15
9
  gem.description = %q{A Ruby wrapper for BSD's kqueue, using FFI}
16
10
  gem.extra_rdoc_files = %w(README.md)
17
11
  gem.licenses = ['MIT']
18
12
 
19
13
  gem.files = `git ls-files`.split(/\n/)
20
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
21
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
15
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
22
16
 
23
17
  gem.homepage = %q{http://github.com/mat813/rb-kqueue}
24
18
  gem.rdoc_options = ["--charset=UTF-8"]
25
19
  gem.require_paths = ["lib"]
26
- gem.rubygems_version = %q{1.3.5}
27
20
  gem.summary = %q{A Ruby wrapper for BSD's kqueue, using FFI}
28
21
 
29
22
  gem.add_runtime_dependency(%q<ffi>, [">= 0.5.0"])
30
23
  gem.add_development_dependency(%q<yard>, [">= 0.4.0"])
31
24
  gem.add_development_dependency(%q<rspec>, [">= 3.3.0"])
32
25
  end
33
-
@@ -10,16 +10,16 @@ RSpec.describe KQueue::Queue do
10
10
 
11
11
  context 'file is watched for writes' do
12
12
  before do
13
- queue.watch_file file.path, :write do
14
- file_touched = !file_touched
15
- end
16
- queue.process
13
+ queue.watch_file file.path, :write do
14
+ file_touched = !file_touched
15
+ end
16
+ queue.process
17
17
  end
18
18
 
19
19
  context 'file is written to' do
20
- it 'executes the defined block' do
21
- expect { file.write 'test' }.to change { file_touched }.from(false).to true
22
- end
20
+ it 'executes the defined block' do
21
+ expect { file.write 'test' }.to change { file_touched }.from(false).to true
22
+ end
23
23
  end
24
24
  end
25
25
 
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rb-kqueue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mathieu Arnold
8
8
  - Nathan Weizenbaum
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-05-16 00:00:00.000000000 Z
12
+ date: 2021-04-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi
@@ -62,12 +62,13 @@ extra_rdoc_files:
62
62
  files:
63
63
  - ".gitignore"
64
64
  - ".rspec"
65
+ - ".ruby-gemset"
66
+ - ".ruby-version"
65
67
  - ".yardopts"
66
68
  - Gemfile
67
69
  - MIT-LICENSE
68
70
  - README.md
69
71
  - Rakefile
70
- - VERSION
71
72
  - lib/rb-kqueue.rb
72
73
  - lib/rb-kqueue/event.rb
73
74
  - lib/rb-kqueue/native.rb
@@ -88,7 +89,7 @@ homepage: http://github.com/mat813/rb-kqueue
88
89
  licenses:
89
90
  - MIT
90
91
  metadata: {}
91
- post_install_message:
92
+ post_install_message:
92
93
  rdoc_options:
93
94
  - "--charset=UTF-8"
94
95
  require_paths:
@@ -104,9 +105,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
105
  - !ruby/object:Gem::Version
105
106
  version: '0'
106
107
  requirements: []
107
- rubyforge_project:
108
- rubygems_version: 2.4.8
109
- signing_key:
108
+ rubygems_version: 3.0.9
109
+ signing_key:
110
110
  specification_version: 4
111
111
  summary: A Ruby wrapper for BSD's kqueue, using FFI
112
112
  test_files:
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.0