zk-eventmachine 0.1.12 → 0.1.13

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/Gemfile CHANGED
@@ -1,9 +1,7 @@
1
- source 'http://localhost:50000'
1
+ source ENV['MBOX_BUNDLER_SOURCE'] if ENV['MBOX_BUNDLER_SOURCE']
2
2
  source "http://rubygems.org"
3
3
 
4
-
5
4
  # Specify your gem's dependencies in zk-em.gemspec
6
5
  gemspec
7
6
 
8
-
9
7
  # vim:ft=ruby
data/Rakefile CHANGED
@@ -20,7 +20,7 @@ end
20
20
  rspec_task_name = "mb:#{rvm_ruby}:run_rspec"
21
21
 
22
22
  task create_gemset_name do
23
- sh "rvm #{rvm_ruby} && rvm gemset create #{gemset_name}"
23
+ sh "rvm #{rvm_ruby} do rvm gemset create #{gemset_name}"
24
24
  end
25
25
 
26
26
  task bundle_task_name => create_gemset_name do
@@ -29,7 +29,7 @@ end
29
29
  end
30
30
 
31
31
  task rspec_task_name => bundle_task_name do
32
- sh "rvm #{ruby_with_gemset} do bundle exec rspec spec"
32
+ sh "rvm #{ruby_with_gemset} do bundle exec rspec spec --fail-fast"
33
33
  end
34
34
 
35
35
  task 'mb:test_all' => rspec_task_name
@@ -1,5 +1,5 @@
1
1
  module ZK
2
2
  module ZKEventMachine
3
- VERSION = "0.1.12"
3
+ VERSION = "0.1.13"
4
4
  end
5
5
  end
data/spec/spec_helper.rb CHANGED
@@ -10,8 +10,6 @@ require 'evented-spec'
10
10
  # in spec/support/ and its subdirectories.
11
11
  Dir[File.expand_path("../support/**/*.rb", __FILE__)].each {|f| require f}
12
12
 
13
- $stderr.sync = true
14
-
15
13
  case `uname -s`.chomp
16
14
  when 'Linux'
17
15
  $stderr.puts "WARN: setting EM.epoll = true for tests"
@@ -21,6 +19,25 @@ when 'Darwin'
21
19
  EM.kqueue = true
22
20
  end
23
21
 
22
+ # method to wait until block passed returns true or timeout (default is 2 seconds) is reached
23
+ def wait_until(timeout=2)
24
+ time_to_stop = Time.now + timeout
25
+
26
+ until yield
27
+ break if Time.now > time_to_stop
28
+ Thread.pass
29
+ end
30
+ end
31
+
32
+ def wait_while(timeout=2)
33
+ time_to_stop = Time.now + timeout
34
+
35
+ while yield
36
+ break if Time.now > time_to_stop
37
+ Thread.pass
38
+ end
39
+ end
40
+
24
41
  RSpec.configure do |config|
25
42
  config.mock_with :flexmock
26
43
  end
@@ -1,14 +1,19 @@
1
1
  require 'logger'
2
2
 
3
- logger = Logger.new(File.expand_path('../../../test.log', __FILE__)).tap {|l| l.level = Logger::DEBUG}
3
+ log_file = File.open(File.expand_path('../../../test.log', __FILE__), 'a').tap { |f| f.sync = true }
4
4
 
5
+ Logger.new(log_file).tap do |log|
6
+ log.level = Logger::DEBUG
7
+ ZK.logger = log
8
+ Zookeeper.logger = log
9
+ end
10
+
11
+ # for debugging along with C output uncomment the following
12
+ #
13
+ # $stderr.sync = true
5
14
  # logger = Logger.new($stderr).tap { |l| l.level = Logger::DEBUG }
6
15
  # Zookeeper.set_debug_level(4)
7
16
 
8
- ZK.logger = logger
9
- Zookeeper.logger = ZK.logger
10
-
11
-
12
17
  def logger
13
18
  ZK.logger
14
19
  end
@@ -1,20 +1,19 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module ZK::ZKEventMachine
4
- describe 'Client' do
4
+ shared_examples_for 'Client' do
5
5
  include EventedSpec::SpecHelper
6
6
  default_timeout 2.0
7
7
 
8
+ let(:base_path) { '/zk-em-testing' }
9
+
8
10
  before do
9
- @zk = ::ZK.new
10
- @base_path = '/zk-em-testing'
11
- @zk.rm_rf(@base_path)
12
- @zk.mkdir_p(@base_path)
13
- @zkem = ZK::ZKEventMachine::Client.new('localhost:2181')
11
+ @zk.rm_rf(base_path)
12
+ @zk.mkdir_p(base_path)
14
13
  end
15
14
 
16
15
  after do
17
- @zk.rm_rf(@base_path)
16
+ @zk.rm_rf(base_path)
18
17
  @zk.close!
19
18
  end
20
19
 
@@ -54,11 +53,10 @@ module ZK::ZKEventMachine
54
53
  end
55
54
  end
56
55
 
57
-
58
56
  describe 'get' do
59
57
  describe 'success' do
60
58
  before do
61
- @path = [@base_path, 'foo'].join('/')
59
+ @path = [base_path, 'foo'].join('/')
62
60
  @data = 'this is data'
63
61
  @zk.create(@path, @data)
64
62
  end
@@ -101,7 +99,7 @@ module ZK::ZKEventMachine
101
99
 
102
100
  describe 'failure' do
103
101
  before do
104
- @path = [@base_path, 'foo'].join('/')
102
+ @path = [base_path, 'foo'].join('/')
105
103
  @zk.delete(@path) rescue ZK::Exceptions::NoNode
106
104
  end
107
105
 
@@ -139,7 +137,7 @@ module ZK::ZKEventMachine
139
137
  describe 'create' do
140
138
  describe 'success' do
141
139
  before do
142
- @path = [@base_path, 'foo'].join('/')
140
+ @path = [base_path, 'foo'].join('/')
143
141
  @zk.delete(@path) rescue ZK::Exceptions::NoNode
144
142
 
145
143
  @data = 'this is data'
@@ -205,7 +203,7 @@ module ZK::ZKEventMachine
205
203
 
206
204
  describe 'failure' do
207
205
  before do
208
- @path = [@base_path, 'foo'].join('/')
206
+ @path = [base_path, 'foo'].join('/')
209
207
  @zk.create(@path, '')
210
208
  end
211
209
 
@@ -242,7 +240,7 @@ module ZK::ZKEventMachine
242
240
  describe 'set' do
243
241
  describe 'success' do
244
242
  before do
245
- @path = [@base_path, 'foo'].join('/')
243
+ @path = [base_path, 'foo'].join('/')
246
244
  @data = 'this is data'
247
245
  @new_data = 'this is better data'
248
246
  @zk.create(@path, @data)
@@ -292,7 +290,7 @@ module ZK::ZKEventMachine
292
290
 
293
291
  describe 'failure' do
294
292
  before do
295
- @path = [@base_path, 'foo'].join('/')
293
+ @path = [base_path, 'foo'].join('/')
296
294
  @zk.delete(@path) rescue ZK::Exceptions::NoNode
297
295
  end
298
296
 
@@ -328,7 +326,7 @@ module ZK::ZKEventMachine
328
326
 
329
327
  describe 'exists?' do
330
328
  before do
331
- @path = [@base_path, 'foo'].join('/')
329
+ @path = [base_path, 'foo'].join('/')
332
330
  @data = 'this is data'
333
331
  end
334
332
 
@@ -374,7 +372,7 @@ module ZK::ZKEventMachine
374
372
  describe 'stat' do
375
373
  describe 'success' do
376
374
  before do
377
- @path = [@base_path, 'foo'].join('/')
375
+ @path = [base_path, 'foo'].join('/')
378
376
  @data = 'this is data'
379
377
  @zk.create(@path, @data)
380
378
  @orig_stat = @zk.stat(@path)
@@ -416,7 +414,7 @@ module ZK::ZKEventMachine
416
414
 
417
415
  describe 'non-existent node' do
418
416
  before do
419
- @path = [@base_path, 'foo'].join('/')
417
+ @path = [base_path, 'foo'].join('/')
420
418
  @zk.delete(@path) rescue ZK::Exceptions::NoNode
421
419
  end
422
420
 
@@ -445,7 +443,7 @@ module ZK::ZKEventMachine
445
443
  describe 'delete' do
446
444
  describe 'success' do
447
445
  before do
448
- @path = [@base_path, 'foo'].join('/')
446
+ @path = [base_path, 'foo'].join('/')
449
447
  @data = 'this is data'
450
448
  @zk.create(@path, @data)
451
449
  end
@@ -483,7 +481,7 @@ module ZK::ZKEventMachine
483
481
 
484
482
  describe 'failure' do
485
483
  before do
486
- @path = [@base_path, 'foo'].join('/')
484
+ @path = [base_path, 'foo'].join('/')
487
485
  @zk.delete(@path) rescue ZK::Exceptions::NoNode
488
486
  end
489
487
 
@@ -520,7 +518,7 @@ module ZK::ZKEventMachine
520
518
  describe 'children' do
521
519
  describe 'success' do
522
520
  before do
523
- @path = [@base_path, 'foo'].join('/')
521
+ @path = [base_path, 'foo'].join('/')
524
522
  @child_1_path = [@path, 'child_1'].join('/')
525
523
  @child_2_path = [@path, 'child_2'].join('/')
526
524
 
@@ -574,7 +572,7 @@ module ZK::ZKEventMachine
574
572
 
575
573
  describe 'failure' do
576
574
  before do
577
- @path = [@base_path, 'foo'].join('/')
575
+ @path = [base_path, 'foo'].join('/')
578
576
  @zk.delete(@path) rescue ZK::Exceptions::NoNode
579
577
  end
580
578
 
@@ -611,7 +609,7 @@ module ZK::ZKEventMachine
611
609
  describe 'get_acl' do
612
610
  describe 'success' do
613
611
  before do
614
- @path = [@base_path, 'foo'].join('/')
612
+ @path = [base_path, 'foo'].join('/')
615
613
  @data = 'this is data'
616
614
  @zk.create(@path, @data)
617
615
  end
@@ -655,7 +653,7 @@ module ZK::ZKEventMachine
655
653
 
656
654
  describe 'failure' do
657
655
  before do
658
- @path = [@base_path, 'foo'].join('/')
656
+ @path = [base_path, 'foo'].join('/')
659
657
  @zk.delete(@path) rescue ZK::Exceptions::NoNode
660
658
  end
661
659
 
@@ -717,7 +715,6 @@ module ZK::ZKEventMachine
717
715
  em do
718
716
  @zkem.session_passwd.should be_nil
719
717
 
720
-
721
718
  @zkem.connect do
722
719
  @zkem.session_passwd.should be_kind_of(String)
723
720
  @zkem.close! { done }
@@ -728,7 +725,7 @@ module ZK::ZKEventMachine
728
725
 
729
726
  describe 'on_connection_lost' do
730
727
  before do
731
- @path = [@base_path, 'foo'].join('/')
728
+ @path = [base_path, 'foo'].join('/')
732
729
  @data = 'this is data'
733
730
  @zk.create(@path, @data)
734
731
  end
@@ -816,5 +813,42 @@ module ZK::ZKEventMachine
816
813
  end
817
814
  end # on_connecting
818
815
  end # Client
816
+
817
+ describe 'regular' do
818
+
819
+ before do
820
+ @zkem = ZK::ZKEventMachine::Client.new('localhost:2181')
821
+ @zk = ZK.new.tap { |z| wait_until { z.connected? } }
822
+ @zk.should be_connected
823
+ end
824
+
825
+ it_should_behave_like 'Client'
826
+ end
827
+
828
+ describe 'chrooted' do
829
+ let(:chroot_path) { '/_zkem_chroot_' }
830
+ let(:zk_connect_host) { "localhost:2181#{chroot_path}" }
831
+
832
+ before :all do
833
+ ZK.open('localhost:2181') do |z|
834
+ z.rm_rf(chroot_path)
835
+ z.mkdir_p(chroot_path)
836
+ end
837
+ end
838
+
839
+ after :all do
840
+ ZK.open('localhost:2181') do |z|
841
+ z.rm_rf(chroot_path)
842
+ end
843
+ end
844
+
845
+ before do
846
+ @zkem = ZK::ZKEventMachine::Client.new(zk_connect_host)
847
+ @zk = ZK.new(zk_connect_host).tap { |z| wait_until { z.connected? } }
848
+ @zk.should be_connected
849
+ end
850
+
851
+ it_should_behave_like 'Client'
852
+ end
819
853
  end # ZK::ZKEventMachine
820
854
 
@@ -12,19 +12,20 @@ Gem::Specification.new do |s|
12
12
  s.summary = %q{ZK client for EventMachine-based (async) applications}
13
13
  s.description = s.description
14
14
 
15
- s.add_dependency('zk', '~> 0.8.6')
15
+ s.add_dependency 'zk', '~> 0.8.7'
16
16
 
17
17
  # zk depends on slyphon-zookeeper, but we need at least this version
18
- s.add_dependency('slyphon-zookeeper', '~> 0.2.8')
19
- s.add_dependency('eventmachine', '~> 1.0.0.beta.3')
20
- s.add_dependency('deferred', '~> 0.5.3')
18
+ s.add_dependency 'slyphon-zookeeper', '~> 0.3.0'
19
+ s.add_dependency 'eventmachine', '~> 1.0.0.beta.4'
20
+ s.add_dependency 'deferred', '~> 0.5.3'
21
21
 
22
- s.add_development_dependency('rspec', '~> 2.5.0')
23
- s.add_development_dependency('yard', '~> 0.7.0')
24
- s.add_development_dependency('autotest', '>= 4.4.0')
25
- s.add_development_dependency('flexmock', '~> 0.8.10')
26
- s.add_development_dependency('evented-spec', '~> 0.4.1')
27
- s.add_development_dependency('redcarpet', '~> 2.1.0')
22
+ s.add_development_dependency 'rspec', '~> 2.8.0'
23
+ s.add_development_dependency 'yard', '~> 0.7.0'
24
+ s.add_development_dependency 'autotest', '>= 4.4.0'
25
+ s.add_development_dependency 'flexmock', '~> 0.8.10'
26
+ s.add_development_dependency 'evented-spec','~> 0.9.0'
27
+ s.add_development_dependency 'redcarpet', '~> 2.1.0'
28
+ s.add_development_dependency 'rake'
28
29
 
29
30
  s.files = `git ls-files`.split("\n")
30
31
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zk-eventmachine
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 12
10
- version: 0.1.12
9
+ - 13
10
+ version: 0.1.13
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jonathan D. Simms
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-02-01 00:00:00 Z
18
+ date: 2012-04-11 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: zk
@@ -25,12 +25,12 @@ dependencies:
25
25
  requirements:
26
26
  - - ~>
27
27
  - !ruby/object:Gem::Version
28
- hash: 51
28
+ hash: 49
29
29
  segments:
30
30
  - 0
31
31
  - 8
32
- - 6
33
- version: 0.8.6
32
+ - 7
33
+ version: 0.8.7
34
34
  type: :runtime
35
35
  version_requirements: *id001
36
36
  - !ruby/object:Gem::Dependency
@@ -41,12 +41,12 @@ dependencies:
41
41
  requirements:
42
42
  - - ~>
43
43
  - !ruby/object:Gem::Version
44
- hash: 7
44
+ hash: 19
45
45
  segments:
46
46
  - 0
47
- - 2
48
- - 8
49
- version: 0.2.8
47
+ - 3
48
+ - 0
49
+ version: 0.3.0
50
50
  type: :runtime
51
51
  version_requirements: *id002
52
52
  - !ruby/object:Gem::Dependency
@@ -57,14 +57,14 @@ dependencies:
57
57
  requirements:
58
58
  - - ~>
59
59
  - !ruby/object:Gem::Version
60
- hash: 62196357
60
+ hash: 62196363
61
61
  segments:
62
62
  - 1
63
63
  - 0
64
64
  - 0
65
65
  - beta
66
- - 3
67
- version: 1.0.0.beta.3
66
+ - 4
67
+ version: 1.0.0.beta.4
68
68
  type: :runtime
69
69
  version_requirements: *id003
70
70
  - !ruby/object:Gem::Dependency
@@ -91,12 +91,12 @@ dependencies:
91
91
  requirements:
92
92
  - - ~>
93
93
  - !ruby/object:Gem::Version
94
- hash: 27
94
+ hash: 47
95
95
  segments:
96
96
  - 2
97
- - 5
97
+ - 8
98
98
  - 0
99
- version: 2.5.0
99
+ version: 2.8.0
100
100
  type: :development
101
101
  version_requirements: *id005
102
102
  - !ruby/object:Gem::Dependency
@@ -155,12 +155,12 @@ dependencies:
155
155
  requirements:
156
156
  - - ~>
157
157
  - !ruby/object:Gem::Version
158
- hash: 13
158
+ hash: 59
159
159
  segments:
160
160
  - 0
161
- - 4
162
- - 1
163
- version: 0.4.1
161
+ - 9
162
+ - 0
163
+ version: 0.9.0
164
164
  type: :development
165
165
  version_requirements: *id009
166
166
  - !ruby/object:Gem::Dependency
@@ -179,6 +179,20 @@ dependencies:
179
179
  version: 2.1.0
180
180
  type: :development
181
181
  version_requirements: *id010
182
+ - !ruby/object:Gem::Dependency
183
+ name: rake
184
+ prerelease: false
185
+ requirement: &id011 !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ hash: 3
191
+ segments:
192
+ - 0
193
+ version: "0"
194
+ type: :development
195
+ version_requirements: *id011
182
196
  description: ""
183
197
  email:
184
198
  - slyphon@hp.com