listen 1.1.6 → 1.2.0

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
2
  SHA1:
3
- metadata.gz: 15c2061b4e5946ad201164615031c72bffe85ff0
4
- data.tar.gz: c62a6832ec7627b5c5d62f319a69e5f0ec2a1a71
3
+ metadata.gz: 8776e2e4466c49d67aa6697bcee59db998508757
4
+ data.tar.gz: 296383775b460f0177cfb73232a20fee9aa15a97
5
5
  SHA512:
6
- metadata.gz: d0d771a559f389f1d7992966fe0a92cf5966dab2ddd31687ee284d292718b846151580bf1ddaa624432daeb677d01fc7af5763a4ebc60e9b010b9691eac2b944
7
- data.tar.gz: ec49484e993dca69208d7034e308fe8b1988ce551bbc898f6e614d831b6206cc5fe4a5e7c9843ade6ea61551003287bc216598992b9841f106b8f9f6d0ac2b84
6
+ metadata.gz: 154daba042dadf9e3a2b88e0ad8a5e9d4a9fde2768b0918556c3b76160d1dbf123ddb9fc9484e88468a2a5cd122bc37c4ab50b347f27b1949346db15c9eb0bd2
7
+ data.tar.gz: 89a846a26738db61e4128c2d81421efcabcba3c0312e854afc44a7353e142dd01347f99530534155007977bc8b8df64fa59dd3d97d8f875d64115ff2c5f66a83
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 1.2.0 - Jun 11, 2013
2
+
3
+ ### Improvement
4
+
5
+ - [#124][] New `force_adapter` option, skip the `.listen_test` adapter test. ([@nicobrevin][])
6
+
1
7
  ## 1.1.6 - Jun 4, 2013
2
8
 
3
9
  ### Change
@@ -310,6 +316,7 @@
310
316
  [#118]: https://github.com/guard/listen/issues/118
311
317
  [#120]: https://github.com/guard/listen/issues/120
312
318
  [#122]: https://github.com/guard/listen/issues/122
319
+ [#124]: https://github.com/guard/listen/issues/124
313
320
  [@Maher4Ever]: https://github.com/Maher4Ever
314
321
  [@ahoward]: https://github.com/ahoward
315
322
  [@akerbos]: https://github.com/akerbos
@@ -329,6 +336,7 @@
329
336
  [@napcs]: https://github.com/napcs
330
337
  [@netzpirat]: https://github.com/netzpirat
331
338
  [@nex3]: https://github.com/nex3
339
+ [@nicobrevin]: https://github.com/nicobrevin
332
340
  [@nilbus]: https://github.com/nilbus
333
341
  [@nysalor]: https://github.com/nysalor
334
342
  [@piotr-sokolowski]: https://github.com/piotr-sokolowski
data/README.md CHANGED
@@ -87,6 +87,7 @@ listener = listener.filter(/\.rb$/)
87
87
  listener = listener.latency(0.5)
88
88
  listener = listener.force_polling(true)
89
89
  listener = listener.polling_fallback_message(false)
90
+ listener = listener.force_adapter(Listen::Adapters::Linux)
90
91
  listener = listener.change(&callback)
91
92
  listener.start
92
93
  ```
@@ -207,6 +208,9 @@ or via ["Object" API](#object-api) methods:
207
208
  :latency => 0.5 # Set the delay (**in seconds**) between checking for changes
208
209
  # default: 0.25 sec (1.0 sec for polling)
209
210
 
211
+ :force_adapter => Listen::Adapters::Linux # Force the use of a particular adapter class
212
+ # default: none
213
+
210
214
  :force_polling => true # Force the use of the polling adapter
211
215
  # default: none
212
216
 
@@ -276,6 +280,11 @@ want to force the use of the polling adapter, either use the `:force_polling` op
276
280
  while initializing the listener or call the `#force_polling` method on your listener
277
281
  before starting it.
278
282
 
283
+ It is also possible to force the use of a particular adapter, by using the `:force_adapter`
284
+ option. This option skips the usual adapter choosing mechanism and uses the given
285
+ adapter class instead. The adapter choosing mechanism requires write permission
286
+ to your watched directories and will needlessly load code, which isn't always desirable.
287
+
279
288
  ## Polling fallback
280
289
 
281
290
  When a OS-specific adapter doesn't work the Listen gem automatically falls back to the polling adapter.
@@ -42,7 +42,15 @@ module Listen
42
42
  # @return [Listen::Adapter] the chosen adapter
43
43
  #
44
44
  def self.select_and_initialize(directories, options = {}, &callback)
45
- return Adapters::Polling.new(directories, options, &callback) if options.delete(:force_polling)
45
+ forced_adapter_class = options.delete(:force_adapter)
46
+ force_polling = options.delete(:force_polling)
47
+
48
+ if forced_adapter_class
49
+ forced_adapter_class.load_dependent_adapter
50
+ return forced_adapter_class.new(directories, options, &callback)
51
+ end
52
+
53
+ return Adapters::Polling.new(directories, options, &callback) if force_polling
46
54
 
47
55
  OPTIMIZED_ADAPTERS.each do |adapter|
48
56
  namespaced_adapter = Adapters.const_get(adapter)
@@ -21,6 +21,7 @@ module Listen
21
21
  # @option options [Boolean] relative_paths whether or not to use relative-paths in the callback
22
22
  # @option options [Boolean] force_polling whether to force the polling adapter or not
23
23
  # @option options [String, Boolean] polling_fallback_message to change polling fallback message or remove it
24
+ # @option options [Class] force_adapter force the use of this adapter class, skipping usual adapter selection
24
25
  #
25
26
  # @yield [modified, added, removed] the changed files
26
27
  # @yieldparam [Array<String>] modified the list of modified files
@@ -180,6 +181,21 @@ module Listen
180
181
  self
181
182
  end
182
183
 
184
+ # Sets whether to force the use of a particular adapter, rather than
185
+ # going through usual adapter selection process on start.
186
+ #
187
+ # @example Force use of Linux polling
188
+ # force_adapter Listen::Adapters::Linux
189
+ #
190
+ # @param [Class] adapter class to use for file system event notification.
191
+ #
192
+ # @return [Listen::Listener] the listener
193
+ #
194
+ def force_adapter(adapter_class)
195
+ @adapter_options[:force_adapter] = adapter_class
196
+ self
197
+ end
198
+
183
199
  # Sets whether the paths in the callback should be
184
200
  # relative or absolute.
185
201
  #
@@ -1,3 +1,3 @@
1
1
  module Listen
2
- VERSION = '1.1.6'
2
+ VERSION = '1.2.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: listen
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.6
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thibaud Guillaume-Gentil
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-04 00:00:00.000000000 Z
12
+ date: 2013-06-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rb-fsevent