zk-eventmachine 0.2.0.beta.3 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,127 +1,104 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: zk-eventmachine
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.0.beta.3
5
- prerelease: 6
3
+ version: !ruby/object:Gem::Version
4
+ hash: 59
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 9
9
+ - 0
10
+ version: 0.9.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Jonathan D. Simms
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-11-15 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-04-23 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: zk
16
- requirement: &2153417580 !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: 0.8.5
22
- type: :runtime
23
22
  prerelease: false
24
- version_requirements: *2153417580
25
- - !ruby/object:Gem::Dependency
26
- name: slyphon-zookeeper
27
- requirement: &2153416980 !ruby/object:Gem::Requirement
23
+ requirement: &id001 !ruby/object:Gem::Requirement
28
24
  none: false
29
- requirements:
25
+ requirements:
30
26
  - - ~>
31
- - !ruby/object:Gem::Version
32
- version: 0.2.4
27
+ - !ruby/object:Gem::Version
28
+ hash: 59
29
+ segments:
30
+ - 0
31
+ - 9
32
+ - 0
33
+ version: 0.9.0
33
34
  type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: slyphon-zookeeper
34
38
  prerelease: false
35
- version_requirements: *2153416980
36
- - !ruby/object:Gem::Dependency
37
- name: eventmachine
38
- requirement: &2153416460 !ruby/object:Gem::Requirement
39
+ requirement: &id002 !ruby/object:Gem::Requirement
39
40
  none: false
40
- requirements:
41
+ requirements:
41
42
  - - ~>
42
- - !ruby/object:Gem::Version
43
- version: 1.0.0.beta.3
43
+ - !ruby/object:Gem::Version
44
+ hash: 61
45
+ segments:
46
+ - 0
47
+ - 8
48
+ - 1
49
+ version: 0.8.1
44
50
  type: :runtime
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: eventmachine
45
54
  prerelease: false
46
- version_requirements: *2153416460
47
- - !ruby/object:Gem::Dependency
48
- name: em-synchrony
49
- requirement: &2153416000 !ruby/object:Gem::Requirement
55
+ requirement: &id003 !ruby/object:Gem::Requirement
50
56
  none: false
51
- requirements:
57
+ requirements:
52
58
  - - ~>
53
- - !ruby/object:Gem::Version
54
- version: 1.0.0
59
+ - !ruby/object:Gem::Version
60
+ hash: -1649268254
61
+ segments:
62
+ - 1
63
+ - 0
64
+ - 0
65
+ - beta
66
+ - 4
67
+ version: 1.0.0.beta.4
55
68
  type: :runtime
69
+ version_requirements: *id003
70
+ - !ruby/object:Gem::Dependency
71
+ name: deferred
56
72
  prerelease: false
57
- version_requirements: *2153416000
58
- - !ruby/object:Gem::Dependency
59
- name: rspec
60
- requirement: &2153415040 !ruby/object:Gem::Requirement
61
- none: false
62
- requirements:
63
- - - ~>
64
- - !ruby/object:Gem::Version
65
- version: 2.5.0
66
- type: :development
67
- prerelease: false
68
- version_requirements: *2153415040
69
- - !ruby/object:Gem::Dependency
70
- name: yard
71
- requirement: &2153414480 !ruby/object:Gem::Requirement
73
+ requirement: &id004 !ruby/object:Gem::Requirement
72
74
  none: false
73
- requirements:
75
+ requirements:
74
76
  - - ~>
75
- - !ruby/object:Gem::Version
76
- version: 0.7.0
77
- type: :development
78
- prerelease: false
79
- version_requirements: *2153414480
80
- - !ruby/object:Gem::Dependency
81
- name: autotest
82
- requirement: &2153413980 !ruby/object:Gem::Requirement
83
- none: false
84
- requirements:
85
- - - ! '>='
86
- - !ruby/object:Gem::Version
87
- version: 4.4.0
88
- type: :development
89
- prerelease: false
90
- version_requirements: *2153413980
91
- - !ruby/object:Gem::Dependency
92
- name: flexmock
93
- requirement: &2153413520 !ruby/object:Gem::Requirement
94
- none: false
95
- requirements:
96
- - - ~>
97
- - !ruby/object:Gem::Version
98
- version: 0.8.10
99
- type: :development
100
- prerelease: false
101
- version_requirements: *2153413520
102
- - !ruby/object:Gem::Dependency
103
- name: evented-spec
104
- requirement: &2153409460 !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ~>
108
- - !ruby/object:Gem::Version
109
- version: 0.4.1
110
- type: :development
111
- prerelease: false
112
- version_requirements: *2153409460
113
- description: ''
114
- email:
77
+ - !ruby/object:Gem::Version
78
+ hash: 13
79
+ segments:
80
+ - 0
81
+ - 5
82
+ - 3
83
+ version: 0.5.3
84
+ type: :runtime
85
+ version_requirements: *id004
86
+ description: ""
87
+ email:
115
88
  - slyphon@hp.com
116
89
  executables: []
90
+
117
91
  extensions: []
92
+
118
93
  extra_rdoc_files: []
119
- files:
94
+
95
+ files:
120
96
  - .dev_extras/README
121
97
  - .dev_extras/rspec
122
98
  - .dev_extras/rvmrc
123
99
  - .dev_extras/slyphon-project.vimrc
124
100
  - .gitignore
101
+ - .yardopts
125
102
  - Gemfile
126
103
  - LICENSE
127
104
  - README.markdown
@@ -129,9 +106,8 @@ files:
129
106
  - lib/z_k/z_k_event_machine.rb
130
107
  - lib/z_k/z_k_event_machine/callback.rb
131
108
  - lib/z_k/z_k_event_machine/client.rb
132
- - lib/z_k/z_k_event_machine/deferred.rb
133
109
  - lib/z_k/z_k_event_machine/event_handler_e_m.rb
134
- - lib/z_k/z_k_event_machine/synchrony_client.rb
110
+ - lib/z_k/z_k_event_machine/iterator.rb
135
111
  - lib/z_k/z_k_event_machine/unixisms.rb
136
112
  - lib/z_k/z_k_event_machine/version.rb
137
113
  - lib/zk-eventmachine.rb
@@ -139,44 +115,52 @@ files:
139
115
  - spec/support/extensions.rb
140
116
  - spec/support/logging.rb
141
117
  - spec/support/logging_progress_bar_formatter.rb
118
+ - spec/support/wait_watchers.rb
142
119
  - spec/z_k/z_k_event_machine/callback_spec.rb
143
120
  - spec/z_k/z_k_event_machine/client_spec.rb
144
121
  - spec/z_k/z_k_event_machine/event_handler_e_m_spec.rb
145
- - spec/z_k/z_k_event_machine/synchrony_client_spec.rb
146
122
  - spec/z_k/z_k_event_machine/unixisms_spec.rb
147
123
  - zk-eventmachine.gemspec
148
124
  homepage: https://github.com/slyphon/zk-eventmachine
149
125
  licenses: []
126
+
150
127
  post_install_message:
151
128
  rdoc_options: []
152
- require_paths:
129
+
130
+ require_paths:
153
131
  - lib
154
- required_ruby_version: !ruby/object:Gem::Requirement
132
+ required_ruby_version: !ruby/object:Gem::Requirement
155
133
  none: false
156
- requirements:
157
- - - ! '>='
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- required_rubygems_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ hash: 3
138
+ segments:
139
+ - 0
140
+ version: "0"
141
+ required_rubygems_version: !ruby/object:Gem::Requirement
161
142
  none: false
162
- requirements:
163
- - - ! '>'
164
- - !ruby/object:Gem::Version
165
- version: 1.3.1
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ hash: 3
147
+ segments:
148
+ - 0
149
+ version: "0"
166
150
  requirements: []
151
+
167
152
  rubyforge_project:
168
- rubygems_version: 1.8.10
153
+ rubygems_version: 1.8.15
169
154
  signing_key:
170
155
  specification_version: 3
171
156
  summary: ZK client for EventMachine-based (async) applications
172
- test_files:
157
+ test_files:
173
158
  - spec/spec_helper.rb
174
159
  - spec/support/extensions.rb
175
160
  - spec/support/logging.rb
176
161
  - spec/support/logging_progress_bar_formatter.rb
162
+ - spec/support/wait_watchers.rb
177
163
  - spec/z_k/z_k_event_machine/callback_spec.rb
178
164
  - spec/z_k/z_k_event_machine/client_spec.rb
179
165
  - spec/z_k/z_k_event_machine/event_handler_e_m_spec.rb
180
- - spec/z_k/z_k_event_machine/synchrony_client_spec.rb
181
166
  - spec/z_k/z_k_event_machine/unixisms_spec.rb
182
- has_rdoc:
@@ -1,39 +0,0 @@
1
- module ZK
2
- module ZKEventMachine
3
- module Deferred
4
- include EM::Deferrable
5
-
6
- # slight modification to EM::Deferrable,
7
- #
8
- # @returns [self] to allow for chaining
9
- #
10
- def callback(&block)
11
- super(&block)
12
- self
13
- end
14
-
15
- # @see #callback
16
- def errback(&block)
17
- super(&block)
18
- self
19
- end
20
-
21
- # adds the block to both the callback and errback chains
22
- def ensure_that(&block)
23
- callback(&block)
24
- errback(&block)
25
- end
26
-
27
- def chain_to(other_dfr, opts={})
28
- other_dfr.callback { |*a| self.succeed(*a) }
29
- other_dfr.errback { |*a| self.fail(*a) } unless opts[:ignore_errors]
30
- self
31
- end
32
-
33
- class Default
34
- include ZK::ZKEventMachine::Deferred
35
- end
36
- end
37
- end
38
- end
39
-
@@ -1,135 +0,0 @@
1
- module ZK
2
- module ZKEventMachine
3
- class SynchronyEventHandlerWrapper
4
- include ZK::Logging
5
-
6
- def initialize(event_handler)
7
- @event_handler = event_handler
8
- end
9
-
10
- # registers a block to be called back within a fiber context
11
- def register(path, &block)
12
- new_block = proc do |*a|
13
- Fiber.new { block.call(*a) }.resume
14
- end
15
-
16
- @event_handler.register(path, &new_block)
17
- end
18
-
19
- private
20
- def method_missing(meth, *a, &b)
21
- @event_handler.__send__(meth, *a, &b)
22
- end
23
- end
24
-
25
- # This class is an EM::Synchrony wrapper around a ZK::ZKEventMachine::Client
26
- #
27
- # It should behave exactly like a ZK::Client instance (when called in a
28
- # synchronous fashion), and one should look there for documentation about
29
- # the various methods
30
- #
31
- # @note this class is implemented as a wrapper instead of a subclass of Client
32
- # so that it can support the unixisms like rm_rf and mkdir_p. The
33
- # synchrony pattern of aliasing the base class methods and specializing for
34
- # synchrony didn't work in this case.
35
- #
36
- class SynchronyClient
37
- include ZK::Logging
38
-
39
- attr_reader :event_handler, :client
40
-
41
- # @overload new(client_instance)
42
- # Wrap an existing ZK::ZKEventMachine::Client instance in an
43
- # EM::Synchrony compatible way
44
- # @param [ZK::ZKEventMachine::Client] client_instance an instance of Client to wrap
45
- # @overload new(host, opts={})
46
- # Creates a new ZK::ZKEventMachine::Client instance to manage
47
- # takes the same arguments as ZK::Client::Base
48
- def initialize(host, opts={})
49
- case host
50
- when Client
51
- @client = host
52
- when String
53
- @client = Client.new(host, opts)
54
- else
55
- raise ArgumentError, "argument must be either a ZK::ZKEventMachine::Client instance or a hostname:port string"
56
- end
57
-
58
- @client.synchrony_client = self
59
-
60
- @event_handler = SynchronyEventHandlerWrapper.new(@client.event_handler)
61
- end
62
-
63
- %w[connect get set create stat delete children get_acl set_acl mkdir_p rm_rf].each do |meth|
64
- class_eval(<<-EOMETH, __FILE__, __LINE__ + 1)
65
- def #{meth}(*args,&blk)
66
- sync!(@client.#{meth}(*args, &blk))
67
- end
68
- EOMETH
69
- end
70
-
71
- # it is *crucially* important that close and close! be wrapped in a fiber.
72
- # it's possible under very odd corner cases with the 1.9.3 GC to cause a
73
- # '[BUG] cfp consistency error - send'
74
- #
75
- %w[close close!].each do |meth|
76
- class_eval(<<-EOMETH, __FILE__, __LINE__ + 1)
77
- def #{meth}(*args,&blk)
78
- Fiber.new { sync!(@client.#{meth}(*args, &blk)) }.resume
79
- end
80
- EOMETH
81
- end
82
-
83
- # @deprecated for backwards compatibility only
84
- def watcher
85
- event_handler
86
- end
87
-
88
- def exists?(path, opts={})
89
- stat(path, opts={}).exists?
90
- end
91
-
92
- # returns self
93
- def to_synchrony
94
- self
95
- end
96
-
97
- # returns the wrapped async client
98
- def to_async
99
- @client
100
- end
101
-
102
- protected
103
- # a modification of EM::Synchrony.sync to handle multiple callback arguments properly
104
- def sync(df)
105
- f = Fiber.current
106
-
107
- xback = proc do |*args|
108
- if f == Fiber.current
109
- return *args
110
- else
111
- f.resume(*args)
112
- end
113
- end
114
-
115
- df.callback(&xback)
116
- df.errback(&xback)
117
-
118
- Fiber.yield
119
- end
120
-
121
- # like sync, but if the deferred returns an exception instance, re-raises
122
- def sync!(deferred)
123
- rval = sync(deferred)
124
- raise rval if rval.kind_of?(Exception)
125
- rval
126
- end
127
-
128
- private
129
- def method_missing(meth, *a, &b)
130
- @client.__send__(meth, *a, &b)
131
- end
132
- end
133
- end
134
- end
135
-