zk 1.9.3 → 1.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/build.yml +55 -0
  3. data/.gitignore +1 -0
  4. data/Gemfile +18 -8
  5. data/README.markdown +9 -9
  6. data/RELEASES.markdown +28 -1
  7. data/lib/zk/client/base.rb +15 -0
  8. data/lib/zk/client/threaded.rb +3 -3
  9. data/lib/zk/client.rb +1 -1
  10. data/lib/zk/election.rb +1 -1
  11. data/lib/zk/event_handler.rb +16 -8
  12. data/lib/zk/event_handler_subscription/base.rb +1 -1
  13. data/lib/zk/fork_hook.rb +9 -4
  14. data/lib/zk/locker/locker_base.rb +14 -2
  15. data/lib/zk/locker/semaphore.rb +1 -3
  16. data/lib/zk/logger.rb +34 -0
  17. data/lib/zk/node_deletion_watcher.rb +4 -5
  18. data/lib/zk/pool.rb +12 -12
  19. data/lib/zk/subscription.rb +1 -1
  20. data/lib/zk/threaded_callback.rb +1 -1
  21. data/lib/zk/threadpool.rb +1 -1
  22. data/lib/zk/version.rb +1 -1
  23. data/lib/zk.rb +1 -5
  24. data/spec/event_catcher_spec.rb +1 -1
  25. data/spec/logging_progress_bar_formatter.rb +1 -1
  26. data/spec/message_queue_spec.rb +6 -6
  27. data/spec/shared/client_examples.rb +81 -81
  28. data/spec/shared/locker_examples.rb +13 -13
  29. data/spec/spec_helper.rb +12 -13
  30. data/spec/support/bogus_mongoid.rb +1 -1
  31. data/spec/support/client_forker.rb +1 -1
  32. data/spec/support/event_catcher.rb +1 -1
  33. data/spec/support/logging.rb +15 -47
  34. data/spec/zk/00_forked_client_integration_spec.rb +3 -3
  35. data/spec/zk/client/locking_and_session_death_spec.rb +2 -2
  36. data/spec/zk/client_spec.rb +19 -19
  37. data/spec/zk/election_spec.rb +44 -44
  38. data/spec/zk/extensions_spec.rb +2 -2
  39. data/spec/zk/locker/exclusive_locker_spec.rb +41 -41
  40. data/spec/zk/locker/locker_basic_spec.rb +55 -33
  41. data/spec/zk/locker/semaphore_spec.rb +39 -32
  42. data/spec/zk/locker/shared_exclusive_integration_spec.rb +37 -37
  43. data/spec/zk/locker/shared_locker_spec.rb +43 -43
  44. data/spec/zk/locker_spec.rb +2 -2
  45. data/spec/zk/module_spec.rb +25 -25
  46. data/spec/zk/mongoid_spec.rb +47 -47
  47. data/spec/zk/node_deletion_watcher_spec.rb +39 -31
  48. data/spec/zk/pool_spec.rb +56 -65
  49. data/spec/zk/threaded_callback_spec.rb +10 -10
  50. data/spec/zk/threadpool_spec.rb +25 -25
  51. data/spec/zk/watch_spec.rb +67 -79
  52. data/spec/zk/zookeeper_spec.rb +36 -30
  53. data/zk.gemspec +1 -2
  54. metadata +26 -47
  55. data/.travis.yml +0 -25
  56. data/lib/zk/logging.rb +0 -36
@@ -17,7 +17,7 @@ describe ZK do
17
17
  after do
18
18
  mute_logger do
19
19
  if @zk.connected?
20
- @zk.close!
20
+ @zk.close!
21
21
  wait_until { !@zk.connected? }
22
22
  end
23
23
 
@@ -33,29 +33,29 @@ describe ZK do
33
33
  locker.synchronize do
34
34
  callback_called = true
35
35
  end
36
- event.path.should == @path
36
+ expect(event.path).to eq(@path)
37
37
  end
38
38
 
39
39
  @zk.exists?(@path, :watch => true)
40
40
  @zk.create(@path, "", :mode => :ephemeral)
41
41
 
42
42
  wait_until(5) { locker.synchronize { callback_called } }
43
- callback_called.should be_true
43
+ expect(callback_called).to be(true)
44
44
  end
45
45
 
46
46
  describe :regression do
47
- before do
48
- pending_in_travis("these tests take too long or time out")
49
- end
47
+ # before do
48
+ # pending_in_travis("these tests take too long or time out")
49
+ # end
50
50
 
51
- # this is stupid, and a bad test, but we have to check that events
52
- # don't get re-delivered to a single registered callback just because
51
+ # this is stupid, and a bad test, but we have to check that events
52
+ # don't get re-delivered to a single registered callback just because
53
53
  # :watch => true was called twice
54
54
  #
55
55
  # again, we're testing a negative here, so consider this a regression check
56
56
  #
57
57
  def wait_for_events_to_not_be_delivered(events)
58
- lambda { wait_until(0.2) { events.length >= 2 } }.should raise_error(WaitWatchers::TimeoutError)
58
+ expect { wait_until(0.2) { events.length >= 2 } }.to raise_error(WaitWatchers::TimeoutError)
59
59
  end
60
60
 
61
61
  it %[should only deliver an event once to each watcher registered for exists?] do
@@ -67,14 +67,14 @@ describe ZK do
67
67
  end
68
68
 
69
69
  2.times do
70
- @zk.exists?(@path, :watch => true).should_not be_true
70
+ expect(@zk.exists?(@path, :watch => true)).not_to be(true)
71
71
  end
72
72
 
73
73
  @zk.create(@path, '', :mode => :ephemeral)
74
74
 
75
75
  wait_for_events_to_not_be_delivered(events)
76
76
 
77
- events.length.should == 1
77
+ expect(events.length).to eq(1)
78
78
  end
79
79
 
80
80
  it %[should only deliver an event once to each watcher registered for get] do
@@ -89,14 +89,14 @@ describe ZK do
89
89
 
90
90
  2.times do
91
91
  data, stat = @zk.get(@path, :watch => true)
92
- data.should == 'one'
92
+ expect(data).to eq('one')
93
93
  end
94
94
 
95
95
  @zk.set(@path, 'two')
96
96
 
97
97
  wait_for_events_to_not_be_delivered(events)
98
98
 
99
- events.length.should == 1
99
+ expect(events.length).to eq(1)
100
100
  end
101
101
 
102
102
 
@@ -112,20 +112,20 @@ describe ZK do
112
112
 
113
113
  2.times do
114
114
  children = @zk.children(@path, :watch => true)
115
- children.should be_empty
115
+ expect(children).to be_empty
116
116
  end
117
117
 
118
118
  @zk.create("#{@path}/pfx", '', :mode => :ephemeral_sequential)
119
119
 
120
120
  wait_for_events_to_not_be_delivered(events)
121
121
 
122
- events.length.should == 1
122
+ expect(events.length).to eq(1)
123
123
  end
124
124
  end
125
125
 
126
126
  it %[should restrict_new_watches_for? if a successul watch has been set] do
127
127
  @zk.stat(@path, :watch => true)
128
- @zk.event_handler.should be_restricting_new_watches_for(:data, @path)
128
+ expect(@zk.event_handler).to be_restricting_new_watches_for(:data, @path)
129
129
  end
130
130
 
131
131
  it %[should not a block on new watches after an operation fails] do
@@ -141,19 +141,19 @@ describe ZK do
141
141
 
142
142
  # get a path that doesn't exist with a watch
143
143
 
144
- lambda { @zk.get(@path, :watch => true) }.should raise_error(ZK::Exceptions::NoNode)
144
+ expect { @zk.get(@path, :watch => true) }.to raise_error(ZK::Exceptions::NoNode)
145
145
 
146
- @zk.event_handler.should_not be_restricting_new_watches_for(:data, @path)
146
+ expect(@zk.event_handler).not_to be_restricting_new_watches_for(:data, @path)
147
147
 
148
148
  @zk.stat(@path, :watch => true)
149
149
 
150
- @zk.event_handler.should be_restricting_new_watches_for(:data, @path)
150
+ expect(@zk.event_handler).to be_restricting_new_watches_for(:data, @path)
151
151
 
152
152
  @zk.create(@path, '')
153
153
 
154
154
  wait_while { events.empty? }
155
155
 
156
- events.should_not be_empty
156
+ expect(events).not_to be_empty
157
157
  end
158
158
 
159
159
  it %[should call a child listener when the node is deleted] do
@@ -177,10 +177,10 @@ describe ZK do
177
177
 
178
178
  event = events.pop
179
179
 
180
- event.should_not be_nil
180
+ expect(event).not_to be_nil
181
181
 
182
- event.path.should == @path
183
- event.type.should == Zookeeper::ZOO_DELETED_EVENT
182
+ expect(event.path).to eq(@path)
183
+ expect(event.type).to eq(Zookeeper::ZOO_DELETED_EVENT)
184
184
 
185
185
  # Create the node again
186
186
  @zk.create(@path, '')
@@ -196,10 +196,10 @@ describe ZK do
196
196
 
197
197
  event = events.pop
198
198
 
199
- event.should_not be_nil
199
+ expect(event).not_to be_nil
200
200
 
201
- event.path.should == @path
202
- event.type.should == Zookeeper::ZOO_DELETED_EVENT
201
+ expect(event.path).to eq(@path)
202
+ expect(event.type).to eq(Zookeeper::ZOO_DELETED_EVENT)
203
203
  end
204
204
 
205
205
  describe ':all' do
@@ -230,7 +230,7 @@ describe ZK do
230
230
  @zk.create(@path)
231
231
  @zk.create(@other_path, 'blah')
232
232
 
233
- wait_until { events.length == 2 }.should be_true
233
+ expect(wait_until { events.length == 2 }).to be(true)
234
234
  end
235
235
  end
236
236
 
@@ -250,58 +250,58 @@ describe ZK do
250
250
 
251
251
  it %[should deliver only the created event to the created block] do
252
252
  @events.synchronize do
253
- @zk.stat(@path, :watch => true).should_not exist
253
+ expect(@zk.stat(@path, :watch => true)).not_to exist
254
254
 
255
255
  @zk.create(@path)
256
256
 
257
257
  @events.wait_for_created
258
258
 
259
- @events.created.should_not be_empty
260
- @events.created.first.should be_node_created
261
- @events.all.should_not be_empty
259
+ expect(@events.created).not_to be_empty
260
+ expect(@events.created.first).to be_node_created
261
+ expect(@events.all).not_to be_empty
262
262
 
263
- @zk.stat(@path, :watch => true).should exist
263
+ expect(@zk.stat(@path, :watch => true)).to exist
264
264
 
265
- @events.all.length.should == 1
265
+ expect(@events.all.length).to eq(1)
266
266
 
267
267
  @zk.delete(@path)
268
268
 
269
269
  @events.wait_for_all
270
270
  end
271
271
 
272
- @events.all.length.should == 2
272
+ expect(@events.all.length).to eq(2)
273
273
 
274
274
  # :deleted event was delivered, make sure it didn't get delivered to the :created block
275
- @events.created.length.should == 1
275
+ expect(@events.created.length).to eq(1)
276
276
  end
277
277
 
278
278
  it %[should deliver only the changed event to the changed block] do
279
279
  @events.synchronize do
280
280
  @zk.create(@path)
281
281
 
282
- @zk.stat(@path, :watch => true).should exist
282
+ expect(@zk.stat(@path, :watch => true)).to exist
283
283
 
284
284
  @zk.set(@path, 'data')
285
285
 
286
286
  @events.wait_for_changed
287
287
  end
288
288
 
289
- @events.changed.should_not be_empty
290
- @events.changed.length.should == 1
291
- @events.changed.first.should be_node_changed
289
+ expect(@events.changed).not_to be_empty
290
+ expect(@events.changed.length).to eq(1)
291
+ expect(@events.changed.first).to be_node_changed
292
292
 
293
- @events.all.length.should == 1
293
+ expect(@events.all.length).to eq(1)
294
294
 
295
295
  @events.synchronize do
296
- @zk.stat(@path, :watch => true).should exist
296
+ expect(@zk.stat(@path, :watch => true)).to exist
297
297
  @zk.delete(@path)
298
298
  @events.wait_for_all
299
299
  end
300
300
 
301
- @events.all.length.should == 2
301
+ expect(@events.all.length).to eq(2)
302
302
 
303
303
  # :deleted event was delivered, make sure it didn't get delivered to the :changed block
304
- @events.changed.length.should == 1
304
+ expect(@events.changed.length).to eq(1)
305
305
  end
306
306
 
307
307
  it %[should deliver only the child event to the child block] do
@@ -309,53 +309,53 @@ describe ZK do
309
309
 
310
310
  @events.synchronize do
311
311
  @zk.create(@path)
312
- @zk.children(@path, :watch => true).should be_empty
312
+ expect(@zk.children(@path, :watch => true)).to be_empty
313
313
 
314
314
  child_path = @zk.create("#{@path}/m", '', :sequence => true)
315
315
 
316
316
  @events.wait_for_child
317
317
 
318
- @events.child.length.should == 1
319
- @events.child.first.should be_node_child
318
+ expect(@events.child.length).to eq(1)
319
+ expect(@events.child.first).to be_node_child
320
320
 
321
- @zk.stat(@path, :watch => true).should exist
321
+ expect(@zk.stat(@path, :watch => true)).to exist
322
322
 
323
- @events.all.length.should == 1
323
+ expect(@events.all.length).to eq(1)
324
324
 
325
325
  @zk.set(@path, '') # equivalent to a 'touch'
326
326
  @events.wait_for_all
327
327
  end
328
328
 
329
- @events.all.length.should == 2
329
+ expect(@events.all.length).to eq(2)
330
330
 
331
331
  # :changed event was delivered, make sure it didn't get delivered to the :child block
332
- @events.child.length.should == 1
332
+ expect(@events.child.length).to eq(1)
333
333
  end
334
334
 
335
335
  it %[should deliver only the deleted event to the deleted block] do
336
336
  @events.synchronize do
337
337
  @zk.create(@path)
338
- @zk.stat(@path, :watch => true).should exist
338
+ expect(@zk.stat(@path, :watch => true)).to exist
339
339
  @zk.delete(@path)
340
340
 
341
341
  @events.wait_for_deleted
342
342
  @events.wait_while_all { |all| all.empty? }
343
343
 
344
- @events.deleted.should_not be_empty
345
- @events.deleted.first.should be_node_deleted
346
- @events.all.length.should == 1
344
+ expect(@events.deleted).not_to be_empty
345
+ expect(@events.deleted.first).to be_node_deleted
346
+ expect(@events.all.length).to eq(1)
347
347
 
348
- @zk.stat(@path, :watch => true).should_not exist
348
+ expect(@zk.stat(@path, :watch => true)).not_to exist
349
349
 
350
350
  @zk.create(@path)
351
351
 
352
352
  @events.wait_for_all
353
353
  end
354
354
 
355
- @events.all.length.should be > 1
355
+ expect(@events.all.length).to be > 1
356
356
 
357
357
  # :deleted event was delivered, make sure it didn't get delivered to the :created block
358
- @events.deleted.length.should == 1
358
+ expect(@events.deleted.length).to eq(1)
359
359
  end
360
360
  end # event catcher scope
361
361
 
@@ -372,30 +372,30 @@ describe ZK do
372
372
  end
373
373
 
374
374
  @events.synchronize do
375
- @zk.stat(@path, :watch => true).should_not exist
375
+ expect(@zk.stat(@path, :watch => true)).not_to exist
376
376
 
377
377
  @zk.create(@path)
378
378
 
379
379
  @cond.wait(5)
380
380
 
381
- @events.should_not be_empty
382
- @events.length.should == 1
383
- @events.first.should be_node_created
381
+ expect(@events).not_to be_empty
382
+ expect(@events.length).to eq(1)
383
+ expect(@events.first).to be_node_created
384
384
 
385
- @zk.stat(@path, :watch => true).should exist
385
+ expect(@zk.stat(@path, :watch => true)).to exist
386
386
  @zk.set(@path, 'blah')
387
387
 
388
388
  @cond.wait(5)
389
389
  end
390
390
 
391
- @events.length.should == 2
392
- @events.last.should be_node_changed
391
+ expect(@events.length).to eq(2)
392
+ expect(@events.last).to be_node_changed
393
393
  end
394
394
 
395
395
  it %[should barf if an invalid event name is given] do
396
- lambda do
396
+ expect do
397
397
  @zk.register(@path, :only => :tripping) { }
398
- end.should raise_error(ArgumentError)
398
+ end.to raise_error(ArgumentError)
399
399
  end
400
400
  end # event interest
401
401
  end # watchers
@@ -416,21 +416,9 @@ describe ZK do
416
416
 
417
417
  it %[should fire the registered callback] do
418
418
  wait_while { @event.nil? }
419
- @event.should_not be_nil
419
+ expect(@event).not_to be_nil
420
420
  end
421
421
  end
422
-
423
- describe 'registered listeners' do
424
- before do
425
- @event = flexmock(:event) do |m|
426
- m.should_receive(:type).and_return(-1)
427
- m.should_receive(:zk=).with(any())
428
- m.should_receive(:node_event?).and_return(false)
429
- m.should_receive(:state_event?).and_return(true)
430
- m.should_receive(:state).and_return(Zookeeper::Constants::ZOO_CONNECTED_STATE)
431
- end
432
- end
433
- end # registered listeners
434
422
  end
435
423
  end
436
424
 
@@ -2,61 +2,67 @@ require 'spec_helper'
2
2
 
3
3
  shared_examples_for 'ZK basic' do
4
4
  before do
5
- logger.debug { "connection_args: #{connection_args.inspect}" }
5
+ logger.debug { "connection_args: #{connection_args.inspect}" }
6
6
  begin
7
7
  @zk.create(@base_path)
8
8
  rescue ZK::Exceptions::NodeExists
9
9
  end
10
10
  end
11
11
 
12
+ describe ZK, "with no authentication" do
13
+ it "should add authentication" do
14
+ expect(@zk.add_auth({:scheme => 'digest', :cert => 'bob:password'})).to include({:rc => 0})
15
+ end
16
+ end
17
+
12
18
  describe ZK, "with no paths" do
13
19
  it "should not exist" do
14
- @zk.exists?("#{@base_path}/test").should be_false
20
+ expect(@zk.exists?("#{@base_path}/test")).to be(false)
15
21
  end
16
22
 
17
23
  it "should create a path" do
18
- @zk.create("#{@base_path}/test", "test_data", :mode => :ephemeral).should == "#{@base_path}/test"
24
+ expect(@zk.create("#{@base_path}/test", "test_data", :mode => :ephemeral)).to eq("#{@base_path}/test")
19
25
  end
20
26
 
21
27
  it "should be able to set the data" do
22
28
  @zk.create("#{@base_path}/test", "something", :mode => :ephemeral)
23
29
  @zk.set("#{@base_path}/test", "somethingelse")
24
- @zk.get("#{@base_path}/test").first.should == "somethingelse"
30
+ expect(@zk.get("#{@base_path}/test").first).to eq("somethingelse")
25
31
  end
26
32
 
27
33
  it "should raise an exception for a non existent path" do
28
- lambda { @zk.get("/non_existent_path") }.should raise_error(ZK::Exceptions::NoNode)
34
+ expect { @zk.get("/non_existent_path") }.to raise_error(ZK::Exceptions::NoNode)
29
35
  end
30
36
 
31
37
  it "should create a path with sequence set" do
32
- @zk.create("#{@base_path}/test", "test_data", :mode => :persistent_sequential).should =~ /test(\d+)/
38
+ expect(@zk.create("#{@base_path}/test", "test_data", :mode => :persistent_sequential)).to match(/test(\d+)/)
33
39
  end
34
40
 
35
41
  it "should create an ephemeral path" do
36
- @zk.create("#{@base_path}/test", "test_data", :mode => :ephemeral).should == "#{@base_path}/test"
42
+ expect(@zk.create("#{@base_path}/test", "test_data", :mode => :ephemeral)).to eq("#{@base_path}/test")
37
43
  end
38
44
 
39
45
  it "should remove ephemeral path when client session ends" do
40
- @zk.create("#{@base_path}/test", "test_data", :mode => :ephemeral).should == "#{@base_path}/test"
41
- @zk.exists?("#{@base_path}/test").should_not be_nil
46
+ expect(@zk.create("#{@base_path}/test", "test_data", :mode => :ephemeral)).to eq("#{@base_path}/test")
47
+ expect(@zk.exists?("#{@base_path}/test")).not_to be_nil
42
48
  @zk.close!
43
49
  wait_until(2) { !@zk.connected? }
44
- @zk.should_not be_connected
50
+ expect(@zk).not_to be_connected
45
51
 
46
52
  @zk = ZK.new(*connection_args)
47
53
  wait_until{ @zk.connected? }
48
- @zk.exists?("#{@base_path}/test").should be_false
54
+ expect(@zk.exists?("#{@base_path}/test")).to be(false)
49
55
  end
50
56
 
51
57
  it "should remove sequential ephemeral path when client session ends" do
52
58
  created = @zk.create("#{@base_path}/test", "test_data", :mode => :ephemeral_sequential)
53
- created.should =~ /test(\d+)/
54
- @zk.exists?(created).should_not be_nil
59
+ expect(created).to match(/test(\d+)/)
60
+ expect(@zk.exists?(created)).not_to be_nil
55
61
  @zk.close!
56
62
 
57
63
  @zk = ZK.new(*connection_args)
58
64
  wait_until{ @zk.connected? }
59
- @zk.exists?(created).should be_false
65
+ expect(@zk.exists?(created)).to be(false)
60
66
  end
61
67
  end
62
68
 
@@ -66,57 +72,57 @@ shared_examples_for 'ZK basic' do
66
72
  end
67
73
 
68
74
  it "should return a stat" do
69
- @zk.stat("#{@base_path}/test").should be_instance_of(Zookeeper::Stat)
75
+ expect(@zk.stat("#{@base_path}/test")).to be_instance_of(Zookeeper::Stat)
70
76
  end
71
77
 
72
78
  it "should return a boolean" do
73
- @zk.exists?("#{@base_path}/test").should be_true
79
+ expect(@zk.exists?("#{@base_path}/test")).to be(true)
74
80
  end
75
81
 
76
82
  it "should get data and stat" do
77
83
  data, stat = @zk.get("#{@base_path}/test")
78
- data.should == "test_data"
79
- stat.should be_a_kind_of(Zookeeper::Stat)
80
- stat.created_time.should_not == 0
84
+ expect(data).to eq("test_data")
85
+ expect(stat).to be_a_kind_of(Zookeeper::Stat)
86
+ expect(stat.created_time).not_to eq(0)
81
87
  end
82
88
 
83
89
  it "should set data with a file" do
84
90
  file = File.read('spec/test_file.txt')
85
91
  @zk.set("#{@base_path}/test", file)
86
- @zk.get("#{@base_path}/test").first.should == file
92
+ expect(@zk.get("#{@base_path}/test").first).to eq(file)
87
93
  end
88
94
 
89
95
  it "should delete path" do
90
96
  @zk.delete("#{@base_path}/test")
91
- @zk.exists?("#{@base_path}/test").should be_false
97
+ expect(@zk.exists?("#{@base_path}/test")).to be(false)
92
98
  end
93
99
 
94
100
  it "should create a child path" do
95
- @zk.create("#{@base_path}/test/child", "child", :mode => :ephemeral).should == "#{@base_path}/test/child"
101
+ expect(@zk.create("#{@base_path}/test/child", "child", :mode => :ephemeral)).to eq("#{@base_path}/test/child")
96
102
  end
97
103
 
98
104
  it "should create sequential child paths" do
99
- (child1 = @zk.create("#{@base_path}/test/child", "child1", :mode => :persistent_sequential)).should =~ /\/test\/child(\d+)/
100
- (child2 = @zk.create("#{@base_path}/test/child", "child2", :mode => :persistent_sequential)).should =~ /\/test\/child(\d+)/
105
+ expect(child1 = @zk.create("#{@base_path}/test/child", "child1", :mode => :persistent_sequential)).to match(/\/test\/child(\d+)/)
106
+ expect(child2 = @zk.create("#{@base_path}/test/child", "child2", :mode => :persistent_sequential)).to match(/\/test\/child(\d+)/)
101
107
  children = @zk.children("#{@base_path}/test")
102
- children.length.should == 2
103
- children.should be_include(child1.match(/\/test\/(child\d+)/)[1])
104
- children.should be_include(child2.match(/\/test\/(child\d+)/)[1])
108
+ expect(children.length).to eq(2)
109
+ expect(children).to be_include(child1.match(/\/test\/(child\d+)/)[1])
110
+ expect(children).to be_include(child2.match(/\/test\/(child\d+)/)[1])
105
111
  end
106
112
 
107
113
  it "should have no children" do
108
- @zk.children("#{@base_path}/test").should be_empty
114
+ expect(@zk.children("#{@base_path}/test")).to be_empty
109
115
  end
110
116
  end
111
117
 
112
118
  describe ZK, "with children" do
113
119
  before(:each) do
114
120
  @zk.create("#{@base_path}/test", "test_data", :mode => :persistent)
115
- @zk.create("#{@base_path}/test/child", "child", :mode => "persistent").should == "#{@base_path}/test/child"
121
+ expect(@zk.create("#{@base_path}/test/child", "child", :mode => "persistent")).to eq("#{@base_path}/test/child")
116
122
  end
117
123
 
118
124
  it "should get children" do
119
- @zk.children("#{@base_path}/test").should eql(["child"])
125
+ expect(@zk.children("#{@base_path}/test")).to eql(["child"])
120
126
  end
121
127
  end
122
128
  end
data/zk.gemspec CHANGED
@@ -12,8 +12,7 @@ Gem::Specification.new do |s|
12
12
  s.summary = %q{A high-level wrapper around the zookeeper driver}
13
13
  s.description = s.summary + "\n"
14
14
 
15
- s.add_runtime_dependency 'zookeeper', '~> 1.4.0'
16
- s.add_runtime_dependency 'logging', '~> 1.7.2'
15
+ s.add_runtime_dependency 'zookeeper', '~> 1.5.0'
17
16
 
18
17
  s.files = `git ls-files`.split("\n")
19
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
metadata CHANGED
@@ -1,67 +1,48 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.3
5
- prerelease:
4
+ version: 1.10.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jonathan D. Simms
9
8
  - Topper Bowers
10
- autorequire:
9
+ autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2014-01-16 00:00:00.000000000 Z
12
+ date: 2021-09-27 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: zookeeper
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ~>
18
+ - - "~>"
21
19
  - !ruby/object:Gem::Version
22
- version: 1.4.0
20
+ version: 1.5.0
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
- - - ~>
25
+ - - "~>"
29
26
  - !ruby/object:Gem::Version
30
- version: 1.4.0
31
- - !ruby/object:Gem::Dependency
32
- name: logging
33
- requirement: !ruby/object:Gem::Requirement
34
- none: false
35
- requirements:
36
- - - ~>
37
- - !ruby/object:Gem::Version
38
- version: 1.7.2
39
- type: :runtime
40
- prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ~>
45
- - !ruby/object:Gem::Version
46
- version: 1.7.2
47
- description: ! 'A high-level wrapper around the zookeeper driver
27
+ version: 1.5.0
28
+ description: 'A high-level wrapper around the zookeeper driver
48
29
 
49
- '
30
+ '
50
31
  email:
51
32
  - slyphon@gmail.com
52
33
  executables: []
53
34
  extensions: []
54
35
  extra_rdoc_files: []
55
36
  files:
56
- - .dotfiles/ctags_paths
57
- - .dotfiles/rspec-logging
58
- - .dotfiles/ruby-gemset
59
- - .dotfiles/ruby-version
60
- - .dotfiles/rvmrc
61
- - .gitignore
62
- - .gitmodules
63
- - .travis.yml
64
- - .yardopts
37
+ - ".dotfiles/ctags_paths"
38
+ - ".dotfiles/rspec-logging"
39
+ - ".dotfiles/ruby-gemset"
40
+ - ".dotfiles/ruby-version"
41
+ - ".dotfiles/rvmrc"
42
+ - ".github/workflows/build.yml"
43
+ - ".gitignore"
44
+ - ".gitmodules"
45
+ - ".yardopts"
65
46
  - Gemfile
66
47
  - Guardfile
67
48
  - LICENSE
@@ -96,7 +77,7 @@ files:
96
77
  - lib/zk/locker/locker_base.rb
97
78
  - lib/zk/locker/semaphore.rb
98
79
  - lib/zk/locker/shared_locker.rb
99
- - lib/zk/logging.rb
80
+ - lib/zk/logger.rb
100
81
  - lib/zk/message_queue.rb
101
82
  - lib/zk/mongoid.rb
102
83
  - lib/zk/node_deletion_watcher.rb
@@ -155,27 +136,25 @@ files:
155
136
  - zk.gemspec
156
137
  homepage: https://github.com/slyphon/zk
157
138
  licenses: []
158
- post_install_message:
139
+ metadata: {}
140
+ post_install_message:
159
141
  rdoc_options: []
160
142
  require_paths:
161
143
  - lib
162
144
  required_ruby_version: !ruby/object:Gem::Requirement
163
- none: false
164
145
  requirements:
165
- - - ! '>='
146
+ - - ">="
166
147
  - !ruby/object:Gem::Version
167
148
  version: '0'
168
149
  required_rubygems_version: !ruby/object:Gem::Requirement
169
- none: false
170
150
  requirements:
171
- - - ! '>='
151
+ - - ">="
172
152
  - !ruby/object:Gem::Version
173
153
  version: '0'
174
154
  requirements: []
175
- rubyforge_project:
176
- rubygems_version: 1.8.25
177
- signing_key:
178
- specification_version: 3
155
+ rubygems_version: 3.1.6
156
+ signing_key:
157
+ specification_version: 4
179
158
  summary: A high-level wrapper around the zookeeper driver
180
159
  test_files:
181
160
  - spec/event_catcher_spec.rb