has-guarded-handlers 1.5.0 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +9 -4
- data/CHANGELOG.md +3 -0
- data/has-guarded-handlers.gemspec +0 -1
- data/lib/has_guarded_handlers.rb +16 -4
- data/lib/has_guarded_handlers/version.rb +1 -1
- data/spec/has_guarded_handlers_spec.rb +119 -66
- data/spec/spec_helper.rb +0 -1
- metadata +22 -58
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5d854e0cfdde0b22903dbdf262be0270d1667eff
|
4
|
+
data.tar.gz: a76bbebebf714923e14fa877eb3d7386d73c2ff7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8ded65f328d1a8bbfcf0b0b8c3a9bcc45b0906989513f724ffbc8fed534732a60ea0431e06f3e4d5b50c01dac226b24a8e7b8d7bbbeb5f6d3536b3c291a2e2b7
|
7
|
+
data.tar.gz: 2427d889bf1d2032bbfebd1de4f7dfa8e4c28493434d488d7d39004f5d855ffef9c3648dc4ef79e97695ea3f7b9c41ece0cdd9cff7a8b3bffb7d357befafd9b8
|
data/.travis.yml
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- 1.9.2
|
4
3
|
- 1.9.3
|
5
|
-
-
|
6
|
-
-
|
7
|
-
|
4
|
+
- 2.0.0
|
5
|
+
- 2.1.0
|
6
|
+
- jruby-19mode
|
7
|
+
- rbx-2.1.1
|
8
|
+
- ruby-head
|
9
|
+
matrix:
|
10
|
+
allow_failures:
|
11
|
+
- rvm: rbx-2.1.1
|
12
|
+
- rvm: ruby-head
|
8
13
|
notifications:
|
9
14
|
irc: "irc.freenode.org#adhearsion"
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# [develop](https://github.com/adhearsion/has-guarded-handlers)
|
2
2
|
|
3
|
+
# [1.6.0](https://github.com/adhearsion/has-guarded-handlers/compare/v1.5.0...v1.6.0) - [2014-01-16](https://rubygems.org/gems/has-guarded-handlers/versions/1.6.0)
|
4
|
+
* Feature: Add a broadcast mode to handler triggering, which ignores what happens in handlers (return value and exceptions) and unconditionally continues the handler chain.
|
5
|
+
|
3
6
|
# [1.5.0](https://github.com/adhearsion/has-guarded-handlers/compare/v1.4.2...v1.5.0) - [2012-12-08](https://rubygems.org/gems/has-guarded-handlers/versions/1.5.0)
|
4
7
|
* Bugfix: Correct API preservation from previous release
|
5
8
|
|
@@ -20,7 +20,6 @@ Gem::Specification.new do |s|
|
|
20
20
|
|
21
21
|
s.add_development_dependency 'bundler', ["~> 1.0"]
|
22
22
|
s.add_development_dependency 'rspec', [">= 2.5.0"]
|
23
|
-
s.add_development_dependency 'mocha', [">= 0"]
|
24
23
|
s.add_development_dependency 'ci_reporter', [">= 1.6.3"]
|
25
24
|
s.add_development_dependency 'yard', [">= 0.7.0"]
|
26
25
|
s.add_development_dependency 'rake', [">= 0"]
|
data/lib/has_guarded_handlers.rb
CHANGED
@@ -77,8 +77,12 @@ module HasGuardedHandlers
|
|
77
77
|
# Trigger a handler classification with an event object
|
78
78
|
#
|
79
79
|
# @param [Symbol, nil] type a classification to separate handlers/events into channels
|
80
|
-
# @param [Object] the event object to yield to the handler block
|
81
|
-
|
80
|
+
# @param [Object] event the event object to yield to the handler block
|
81
|
+
# @param [Hash] options
|
82
|
+
# @option options [true, false] :broadcast Enables broadcast mode, where the return value or raising of handlers does not halt the handler chain. Defaults to false.
|
83
|
+
# @option options [Proc] :exception_callback Allows handling exceptions when broadcast mode is available via a callback.
|
84
|
+
def trigger_handler(type, event, options = {})
|
85
|
+
broadcast = options[:broadcast] || false
|
82
86
|
return unless handler = handlers_of_type(type)
|
83
87
|
called = false
|
84
88
|
catch :halt do
|
@@ -88,8 +92,16 @@ module HasGuardedHandlers
|
|
88
92
|
if guarded?(guards, event)
|
89
93
|
called = false
|
90
94
|
else
|
91
|
-
|
92
|
-
|
95
|
+
begin
|
96
|
+
call_handler handler, guards, event
|
97
|
+
rescue => e
|
98
|
+
if broadcast
|
99
|
+
options[:exception_callback].call(e) if options[:exception_callback]
|
100
|
+
else
|
101
|
+
raise
|
102
|
+
end
|
103
|
+
end
|
104
|
+
true unless broadcast
|
93
105
|
end
|
94
106
|
end
|
95
107
|
delete_handler_if(type) { |_, h, _| h.equal? handler } if tmp && val
|
@@ -7,29 +7,29 @@ describe HasGuardedHandlers do
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
let(:event) {
|
11
|
-
let(:response) {
|
10
|
+
let(:event) { double 'Event' }
|
11
|
+
let(:response) { double 'Response' }
|
12
12
|
|
13
13
|
it 'can register a handler' do
|
14
|
-
response.
|
14
|
+
response.should_receive(:call).twice.with(event)
|
15
15
|
subject.register_handler(:event) { |e| response.call e }
|
16
16
|
subject.trigger_handler(:event, event).should be_true
|
17
17
|
subject.trigger_handler(:event, event).should be_true
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'can register a handler for all events, regardless of category' do
|
21
|
-
response.
|
21
|
+
response.should_receive(:call).twice.with(event)
|
22
22
|
subject.register_handler { |e| response.call e }
|
23
23
|
subject.trigger_handler :event, event
|
24
24
|
subject.trigger_handler :bah, event
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'can register a one-shot (tmp) handler' do
|
28
|
-
response.
|
29
|
-
event.
|
28
|
+
response.should_receive(:call).exactly(3).times.with(event)
|
29
|
+
event.should_receive(:foo).exactly(3).times.and_return :bar
|
30
30
|
|
31
|
-
nomatch_event =
|
32
|
-
nomatch_event.
|
31
|
+
nomatch_event = double 'Event(nomatch)'
|
32
|
+
nomatch_event.should_receive(:foo).twice.and_return :baz
|
33
33
|
|
34
34
|
subject.register_handler(:event, :foo => :bar) do |e|
|
35
35
|
response.call e
|
@@ -43,7 +43,7 @@ describe HasGuardedHandlers do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
it 'can unregister a handler after registration' do
|
46
|
-
response.
|
46
|
+
response.should_receive(:call).once.with(event)
|
47
47
|
subject.register_handler(:event) { |e| response.call e }
|
48
48
|
id = subject.register_handler(:event) { |e| response.call :foo }
|
49
49
|
subject.unregister_handler :event, id
|
@@ -58,8 +58,8 @@ describe HasGuardedHandlers do
|
|
58
58
|
end
|
59
59
|
|
60
60
|
it 'allows for breaking out of handlers' do
|
61
|
-
response.
|
62
|
-
response.
|
61
|
+
response.should_receive(:handle).once
|
62
|
+
response.should_receive(:fail).never
|
63
63
|
subject.register_handler :event do |_|
|
64
64
|
response.handle
|
65
65
|
throw :halt
|
@@ -70,7 +70,7 @@ describe HasGuardedHandlers do
|
|
70
70
|
|
71
71
|
context 'when multiple handlers are registered' do
|
72
72
|
it "stops at the first matching handler regardless of return value" do
|
73
|
-
response.
|
73
|
+
response.should_receive(:handle).once
|
74
74
|
subject.register_handler :event do |_|
|
75
75
|
response.handle
|
76
76
|
false
|
@@ -80,12 +80,67 @@ describe HasGuardedHandlers do
|
|
80
80
|
end
|
81
81
|
subject.trigger_handler(:event, event).should be_true
|
82
82
|
end
|
83
|
+
|
84
|
+
context "and an early one raises" do
|
85
|
+
it "raises that exception, and does not execute later handlers" do
|
86
|
+
response.should_receive(:handle).never
|
87
|
+
subject.register_handler :event do |_|
|
88
|
+
raise "Oops"
|
89
|
+
end
|
90
|
+
subject.register_handler :event do |_|
|
91
|
+
response.handle
|
92
|
+
end
|
93
|
+
expect { subject.trigger_handler(:event, event) }.to raise_error(StandardError, "Oops")
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context "when broadcast mode is enabled on trigger" do
|
98
|
+
it "continues regardless of return value" do
|
99
|
+
response.should_receive(:handle).twice
|
100
|
+
subject.register_handler :event do |_|
|
101
|
+
response.handle
|
102
|
+
end
|
103
|
+
subject.register_handler :event do |_|
|
104
|
+
response.handle
|
105
|
+
end
|
106
|
+
subject.trigger_handler(:event, event, broadcast: true).should be_true
|
107
|
+
end
|
108
|
+
|
109
|
+
context "and an early one raises" do
|
110
|
+
it "swallows that exception, and executes later handlers" do
|
111
|
+
response.should_receive(:handle).once
|
112
|
+
subject.register_handler :event do |_|
|
113
|
+
raise "Oops"
|
114
|
+
end
|
115
|
+
subject.register_handler :event do |_|
|
116
|
+
response.handle
|
117
|
+
end
|
118
|
+
subject.trigger_handler(:event, event, broadcast: true)
|
119
|
+
end
|
120
|
+
|
121
|
+
it "can invoke a callback on an exception" do
|
122
|
+
exception_callback = double 'Exception Callback'
|
123
|
+
exception_callback.should_receive(:call).once.with do |e|
|
124
|
+
e.should be_a(RuntimeError)
|
125
|
+
e.message.should == "Oops"
|
126
|
+
end.ordered
|
127
|
+
response.should_receive(:handle).once.ordered
|
128
|
+
subject.register_handler :event do |_|
|
129
|
+
raise "Oops"
|
130
|
+
end
|
131
|
+
subject.register_handler :event do |_|
|
132
|
+
response.handle
|
133
|
+
end
|
134
|
+
subject.trigger_handler(:event, event, broadcast: true, exception_callback: exception_callback)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
83
138
|
end
|
84
139
|
|
85
140
|
it 'allows for passing to the next handler of the same type' do
|
86
|
-
response.
|
87
|
-
response.
|
88
|
-
response.
|
141
|
+
response.should_receive(:handle1).once
|
142
|
+
response.should_receive(:handle2).once
|
143
|
+
response.should_receive(:fail).never
|
89
144
|
subject.register_handler :event do |_|
|
90
145
|
response.handle1
|
91
146
|
throw :pass
|
@@ -99,8 +154,8 @@ describe HasGuardedHandlers do
|
|
99
154
|
|
100
155
|
context 'when there is nothing to pass to' do
|
101
156
|
it 'correctly indicates that a handler was called' do
|
102
|
-
response.
|
103
|
-
response.
|
157
|
+
response.should_receive(:handle1).once
|
158
|
+
response.should_receive(:fail).never
|
104
159
|
subject.register_handler :event do |_|
|
105
160
|
response.handle1
|
106
161
|
throw :pass
|
@@ -112,10 +167,9 @@ describe HasGuardedHandlers do
|
|
112
167
|
|
113
168
|
describe 'when registering handlers with the same priority' do
|
114
169
|
it 'preserves the order of specification of the handlers' do
|
115
|
-
|
116
|
-
response.
|
117
|
-
response.
|
118
|
-
response.expects(:handle3).once.in_sequence sequence
|
170
|
+
response.should_receive(:handle1).once.ordered
|
171
|
+
response.should_receive(:handle2).once.ordered
|
172
|
+
response.should_receive(:handle3).once.ordered
|
119
173
|
subject.register_handler :event do |_|
|
120
174
|
response.handle1
|
121
175
|
throw :pass
|
@@ -134,10 +188,9 @@ describe HasGuardedHandlers do
|
|
134
188
|
|
135
189
|
describe 'when registering handlers with a specified priority' do
|
136
190
|
it 'executes handlers in that order' do
|
137
|
-
|
138
|
-
response.
|
139
|
-
response.
|
140
|
-
response.expects(:handle3).once.in_sequence sequence
|
191
|
+
response.should_receive(:handle1).once.ordered
|
192
|
+
response.should_receive(:handle2).once.ordered
|
193
|
+
response.should_receive(:handle3).once.ordered
|
141
194
|
subject.register_handler_with_priority :event, -10 do |_|
|
142
195
|
response.handle3
|
143
196
|
throw :pass
|
@@ -155,7 +208,7 @@ describe HasGuardedHandlers do
|
|
155
208
|
end
|
156
209
|
|
157
210
|
it 'can clear handlers' do
|
158
|
-
response.
|
211
|
+
response.should_receive(:call).once
|
159
212
|
|
160
213
|
subject.register_handler(:event) { |_| response.call }
|
161
214
|
subject.trigger_handler :event, event
|
@@ -171,7 +224,7 @@ describe HasGuardedHandlers do
|
|
171
224
|
end
|
172
225
|
|
173
226
|
it 'can be a class' do
|
174
|
-
response.
|
227
|
+
response.should_receive(:call).once
|
175
228
|
subject.register_handler(:event, GuardedObject) { |_| response.call }
|
176
229
|
|
177
230
|
subject.trigger_handler :event, GuardedObject.new
|
@@ -179,7 +232,7 @@ describe HasGuardedHandlers do
|
|
179
232
|
end
|
180
233
|
|
181
234
|
it 'can be a module' do
|
182
|
-
response.
|
235
|
+
response.should_receive(:call).once
|
183
236
|
subject.register_handler(:event, GuardMixin) { |_| response.call }
|
184
237
|
|
185
238
|
subject.trigger_handler :event, GuardedObject.new
|
@@ -187,54 +240,54 @@ describe HasGuardedHandlers do
|
|
187
240
|
end
|
188
241
|
|
189
242
|
it 'can be a symbol' do
|
190
|
-
response.
|
243
|
+
response.should_receive(:call).once
|
191
244
|
subject.register_handler(:event, :chat?) { |_| response.call }
|
192
245
|
|
193
|
-
event.
|
246
|
+
event.should_receive(:chat?).and_return true
|
194
247
|
subject.trigger_handler :event, event
|
195
248
|
|
196
|
-
event.
|
249
|
+
event.should_receive(:chat?).and_return false
|
197
250
|
subject.trigger_handler :event, event
|
198
251
|
end
|
199
252
|
|
200
253
|
it 'can be a hash with string match' do
|
201
|
-
response.
|
254
|
+
response.should_receive(:call).once
|
202
255
|
subject.register_handler(:event, :body => 'exit') { |_| response.call }
|
203
256
|
|
204
|
-
event.
|
257
|
+
event.should_receive(:body).and_return 'exit'
|
205
258
|
subject.trigger_handler :event, event
|
206
259
|
|
207
|
-
event.
|
260
|
+
event.should_receive(:body).and_return 'not-exit'
|
208
261
|
subject.trigger_handler :event, event
|
209
262
|
end
|
210
263
|
|
211
264
|
it 'can be a hash with a value' do
|
212
|
-
response.
|
265
|
+
response.should_receive(:call).once
|
213
266
|
subject.register_handler(:event, :number => 0) { |_| response.call }
|
214
267
|
|
215
|
-
event.
|
268
|
+
event.should_receive(:number).and_return 0
|
216
269
|
subject.trigger_handler :event, event
|
217
270
|
|
218
|
-
event.
|
271
|
+
event.should_receive(:number).and_return 1
|
219
272
|
subject.trigger_handler :event, event
|
220
273
|
end
|
221
274
|
|
222
275
|
it 'can be a hash with a regexp' do
|
223
|
-
response.
|
276
|
+
response.should_receive(:call).once
|
224
277
|
subject.register_handler(:event, :body => /exit/) { |_| response.call }
|
225
278
|
|
226
|
-
event.
|
279
|
+
event.should_receive(:body).and_return 'more than just exit, but exit still'
|
227
280
|
subject.trigger_handler :event, event
|
228
281
|
|
229
|
-
event.
|
282
|
+
event.should_receive(:body).and_return 'keyword not found'
|
230
283
|
subject.trigger_handler :event, event
|
231
284
|
|
232
|
-
event.
|
285
|
+
event.should_receive(:body).and_return nil
|
233
286
|
subject.trigger_handler :event, event
|
234
287
|
end
|
235
288
|
|
236
289
|
it 'can be a hash with arguments' do
|
237
|
-
response.
|
290
|
+
response.should_receive(:call).once
|
238
291
|
subject.register_handler(:event, [:[], :foo] => :bar) { |_| response.call }
|
239
292
|
|
240
293
|
subject.trigger_handler :event, {:foo => :bar}
|
@@ -243,60 +296,60 @@ describe HasGuardedHandlers do
|
|
243
296
|
end
|
244
297
|
|
245
298
|
it 'can be a hash with an array' do
|
246
|
-
response.
|
299
|
+
response.should_receive(:call).twice
|
247
300
|
subject.register_handler(:event, :type => [:result, :error]) { |_| response.call }
|
248
301
|
|
249
|
-
event =
|
250
|
-
event.
|
302
|
+
event = double 'Event'
|
303
|
+
event.should_receive(:type).at_least(1).and_return :result
|
251
304
|
subject.trigger_handler :event, event
|
252
305
|
|
253
|
-
event =
|
254
|
-
event.
|
306
|
+
event = double 'Event'
|
307
|
+
event.should_receive(:type).at_least(1).and_return :error
|
255
308
|
subject.trigger_handler :event, event
|
256
309
|
|
257
|
-
event =
|
258
|
-
event.
|
310
|
+
event = double 'Event'
|
311
|
+
event.should_receive(:type).at_least(1).and_return :get
|
259
312
|
subject.trigger_handler :event, event
|
260
313
|
end
|
261
314
|
|
262
315
|
it 'chained are treated like andand (short circuited)' do
|
263
|
-
response.
|
316
|
+
response.should_receive(:call).once
|
264
317
|
subject.register_handler(:event, :type => :get, :body => 'test') { |_| response.call }
|
265
318
|
|
266
|
-
event =
|
267
|
-
event.
|
268
|
-
event.
|
319
|
+
event = double 'Event'
|
320
|
+
event.should_receive(:type).at_least(1).and_return :get
|
321
|
+
event.should_receive(:body).and_return 'test'
|
269
322
|
subject.trigger_handler :event, event
|
270
323
|
|
271
|
-
event =
|
272
|
-
event.
|
273
|
-
event.
|
324
|
+
event = double 'Event'
|
325
|
+
event.should_receive(:type).at_least(1).and_return :set
|
326
|
+
event.should_receive(:body).never
|
274
327
|
subject.trigger_handler :event, event
|
275
328
|
end
|
276
329
|
|
277
330
|
it 'within an Array are treated as oror (short circuited)' do
|
278
|
-
response.
|
331
|
+
response.should_receive(:call).twice
|
279
332
|
subject.register_handler(:event, [{:type => :get}, {:body => 'test'}]) { |_| response.call }
|
280
333
|
|
281
|
-
event =
|
282
|
-
event.
|
283
|
-
event.
|
334
|
+
event = double 'Event'
|
335
|
+
event.should_receive(:type).at_least(1).and_return :set
|
336
|
+
event.should_receive(:body).and_return 'test'
|
284
337
|
subject.trigger_handler :event, event
|
285
338
|
|
286
|
-
event =
|
287
|
-
event.
|
288
|
-
event.
|
339
|
+
event = double 'Event'
|
340
|
+
event.should_receive(:type).at_least(1).and_return :get
|
341
|
+
event.should_receive(:body).never
|
289
342
|
subject.trigger_handler :event, event
|
290
343
|
end
|
291
344
|
|
292
345
|
it 'can be a lambda' do
|
293
|
-
response.
|
346
|
+
response.should_receive(:call).once
|
294
347
|
subject.register_handler(:event, lambda { |e| e.number % 3 == 0 }) { |_| response.call }
|
295
348
|
|
296
|
-
event.
|
349
|
+
event.should_receive(:number).once.and_return 3
|
297
350
|
subject.trigger_handler :event, event
|
298
351
|
|
299
|
-
event.
|
352
|
+
event.should_receive(:number).once.and_return 2
|
300
353
|
subject.trigger_handler :event, event
|
301
354
|
end
|
302
355
|
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has-guarded-handlers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.6.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ben Langfeld
|
@@ -10,118 +9,90 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2014-01-16 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: bundler
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- - ~>
|
18
|
+
- - "~>"
|
21
19
|
- !ruby/object:Gem::Version
|
22
20
|
version: '1.0'
|
23
21
|
type: :development
|
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
27
|
version: '1.0'
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: rspec
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
|
-
- -
|
32
|
+
- - ">="
|
37
33
|
- !ruby/object:Gem::Version
|
38
34
|
version: 2.5.0
|
39
35
|
type: :development
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- -
|
39
|
+
- - ">="
|
45
40
|
- !ruby/object:Gem::Version
|
46
41
|
version: 2.5.0
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: mocha
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
|
-
requirements:
|
52
|
-
- - ! '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
type: :development
|
56
|
-
prerelease: false
|
57
|
-
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
|
-
requirements:
|
60
|
-
- - ! '>='
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '0'
|
63
42
|
- !ruby/object:Gem::Dependency
|
64
43
|
name: ci_reporter
|
65
44
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
45
|
requirements:
|
68
|
-
- -
|
46
|
+
- - ">="
|
69
47
|
- !ruby/object:Gem::Version
|
70
48
|
version: 1.6.3
|
71
49
|
type: :development
|
72
50
|
prerelease: false
|
73
51
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
52
|
requirements:
|
76
|
-
- -
|
53
|
+
- - ">="
|
77
54
|
- !ruby/object:Gem::Version
|
78
55
|
version: 1.6.3
|
79
56
|
- !ruby/object:Gem::Dependency
|
80
57
|
name: yard
|
81
58
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
59
|
requirements:
|
84
|
-
- -
|
60
|
+
- - ">="
|
85
61
|
- !ruby/object:Gem::Version
|
86
62
|
version: 0.7.0
|
87
63
|
type: :development
|
88
64
|
prerelease: false
|
89
65
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
66
|
requirements:
|
92
|
-
- -
|
67
|
+
- - ">="
|
93
68
|
- !ruby/object:Gem::Version
|
94
69
|
version: 0.7.0
|
95
70
|
- !ruby/object:Gem::Dependency
|
96
71
|
name: rake
|
97
72
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
73
|
requirements:
|
100
|
-
- -
|
74
|
+
- - ">="
|
101
75
|
- !ruby/object:Gem::Version
|
102
76
|
version: '0'
|
103
77
|
type: :development
|
104
78
|
prerelease: false
|
105
79
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
80
|
requirements:
|
108
|
-
- -
|
81
|
+
- - ">="
|
109
82
|
- !ruby/object:Gem::Version
|
110
83
|
version: '0'
|
111
84
|
- !ruby/object:Gem::Dependency
|
112
85
|
name: guard-rspec
|
113
86
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
87
|
requirements:
|
116
|
-
- -
|
88
|
+
- - ">="
|
117
89
|
- !ruby/object:Gem::Version
|
118
90
|
version: '0'
|
119
91
|
type: :development
|
120
92
|
prerelease: false
|
121
93
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
94
|
requirements:
|
124
|
-
- -
|
95
|
+
- - ">="
|
125
96
|
- !ruby/object:Gem::Version
|
126
97
|
version: '0'
|
127
98
|
description: Allow an object's API to provide flexible handler registration, storage
|
@@ -132,9 +103,9 @@ executables: []
|
|
132
103
|
extensions: []
|
133
104
|
extra_rdoc_files: []
|
134
105
|
files:
|
135
|
-
- .gitignore
|
136
|
-
- .rspec
|
137
|
-
- .travis.yml
|
106
|
+
- ".gitignore"
|
107
|
+
- ".rspec"
|
108
|
+
- ".travis.yml"
|
138
109
|
- CHANGELOG.md
|
139
110
|
- Gemfile
|
140
111
|
- Guardfile
|
@@ -148,33 +119,26 @@ files:
|
|
148
119
|
- spec/spec_helper.rb
|
149
120
|
homepage: http://github.com/adhearsion/has-guarded-handlers
|
150
121
|
licenses: []
|
122
|
+
metadata: {}
|
151
123
|
post_install_message:
|
152
124
|
rdoc_options: []
|
153
125
|
require_paths:
|
154
126
|
- lib
|
155
127
|
required_ruby_version: !ruby/object:Gem::Requirement
|
156
|
-
none: false
|
157
128
|
requirements:
|
158
|
-
- -
|
129
|
+
- - ">="
|
159
130
|
- !ruby/object:Gem::Version
|
160
131
|
version: '0'
|
161
|
-
segments:
|
162
|
-
- 0
|
163
|
-
hash: -3810858558252593489
|
164
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
|
-
none: false
|
166
133
|
requirements:
|
167
|
-
- -
|
134
|
+
- - ">="
|
168
135
|
- !ruby/object:Gem::Version
|
169
136
|
version: '0'
|
170
|
-
segments:
|
171
|
-
- 0
|
172
|
-
hash: -3810858558252593489
|
173
137
|
requirements: []
|
174
138
|
rubyforge_project: has-guarded-handlers
|
175
|
-
rubygems_version:
|
139
|
+
rubygems_version: 2.2.0
|
176
140
|
signing_key:
|
177
|
-
specification_version:
|
141
|
+
specification_version: 4
|
178
142
|
summary: A library for associating a set of event handlers, complete with guards,
|
179
143
|
with a Ruby object
|
180
144
|
test_files:
|