has-guarded-handlers 1.5.0 → 1.6.0
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.
- 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:
|