honker 0.3.0-x86_64-linux → 0.3.1-x86_64-linux

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 47065d5eaa801ccb1f5c23d66eb399e6a0a3c7d287685a43ffadd61abbfe7c1e
4
- data.tar.gz: 353df199b5e7d340116251f7d5e1bbe6920a908d7302d32b21e6440cc4867934
3
+ metadata.gz: 2bc38dfbfb56aec9e769400c06bef560fa2151530fa15fa4ebe4f5eaa297bd0f
4
+ data.tar.gz: 5a443e116847f744126481adb6c8333781e1463e86cd11d07d36a0dd5b39ab8d
5
5
  SHA512:
6
- metadata.gz: 88cac69ce1fa353ebcf0393543df3da455c97cf109be7e91c853a1dad018e1dcd00870d40b4df8faeceafa89134e213b75b2b90da73e26cc41b888aa74f9602c
7
- data.tar.gz: 2aede2ac9f3c008ce592b665f3c84c3d653aa79bfd27765f7d80dc2289c8295c42df9e3b4bf5d68b3f3458926e94b69802fbe5c12ec7f193dc85105cfa3a6d2b
6
+ metadata.gz: 3d4759cbb5ed29c33ba6f1ebd8da9dd9bf87b2e53541ac63e39458243249649c7cb246aa63018716b2b0b660e097f5fd578d0aa70d06f398abba42ece989a4cd
7
+ data.tar.gz: 2b9b45fa52af31e65dcbb1a8cbade0d517b582db3cbf1fa0fc0cbf8489320ff4008b7dd8f9933a5925dbbb8e1b15dfa3a9aef43c9b7ec249a159d8e0ad88aa79
Binary file
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Honker
4
- VERSION = "0.3.0"
4
+ VERSION = "0.3.1"
5
5
  end
data/lib/honker.rb CHANGED
@@ -113,11 +113,11 @@ module Honker
113
113
  end
114
114
 
115
115
  class CoreWatcher
116
- def initialize(db_path, extension_path, backend)
116
+ def initialize(db_path, extension_path, backend, watcher_poll_interval_ms)
117
117
  @lib = Fiddle.dlopen(extension_path)
118
118
  @open = Fiddle::Function.new(
119
- @lib["honker_watcher_open"],
120
- [Fiddle::TYPE_VOIDP, Fiddle::TYPE_VOIDP, Fiddle::TYPE_VOIDP, Fiddle::TYPE_SIZE_T],
119
+ @lib["honker_watcher_open_v2"],
120
+ [Fiddle::TYPE_VOIDP, Fiddle::TYPE_VOIDP, Fiddle::TYPE_LONG_LONG, Fiddle::TYPE_VOIDP, Fiddle::TYPE_SIZE_T],
121
121
  Fiddle::TYPE_VOIDP,
122
122
  )
123
123
  @wait = Fiddle::Function.new(
@@ -131,7 +131,13 @@ module Honker
131
131
  Fiddle::TYPE_VOID,
132
132
  )
133
133
  err = "\0" * 1024
134
- @handle = @open.call(db_path.to_s, backend.to_s, err, err.bytesize)
134
+ @handle = @open.call(
135
+ db_path.to_s,
136
+ backend.to_s,
137
+ watcher_poll_interval_ms || 1,
138
+ err,
139
+ err.bytesize,
140
+ )
135
141
  return unless @handle.to_i.zero?
136
142
 
137
143
  raise ArgumentError, err.delete_suffix("\0").split("\0", 2).first
@@ -171,10 +177,14 @@ module Honker
171
177
  attr_reader :db
172
178
 
173
179
  def initialize(path, extension_path: nil, watcher_backend: nil,
180
+ watcher_poll_interval_ms: nil,
174
181
  extension_resolver: ExtensionResolver.new)
175
182
  unless watcher_backend.nil? || watcher_backend.is_a?(String)
176
183
  raise ArgumentError, "unknown watcher backend"
177
184
  end
185
+ unless watcher_poll_interval_ms.nil? || watcher_poll_interval_ms.to_i.positive?
186
+ raise ArgumentError, "watcher_poll_interval_ms must be positive"
187
+ end
178
188
 
179
189
  resolved_extension = extension_resolver.resolve(extension_path)
180
190
  @db = SQLite3::Database.new(path)
@@ -186,7 +196,7 @@ module Honker
186
196
  @db.enable_load_extension(false)
187
197
  @db.execute_batch(DEFAULT_PRAGMAS)
188
198
  @db.execute("SELECT honker_bootstrap()")
189
- @watcher = CoreWatcher.new(path, resolved_extension, watcher_backend)
199
+ @watcher = CoreWatcher.new(path, resolved_extension, watcher_backend, watcher_poll_interval_ms)
190
200
  end
191
201
 
192
202
  def close
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: x86_64-linux
6
6
  authors:
7
7
  - Russell Romney