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 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
- - jruby-19mode # JRuby in 1.9 mode
6
- - rbx-19mode # currently in active development, may or may not work for your project
7
- # - ruby-head
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"]
@@ -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
- def trigger_handler(type, event)
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
- call_handler handler, guards, event
92
- true
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
@@ -1,3 +1,3 @@
1
1
  module HasGuardedHandlers
2
- VERSION = "1.5.0"
2
+ VERSION = "1.6.0"
3
3
  end
@@ -7,29 +7,29 @@ describe HasGuardedHandlers do
7
7
  end
8
8
  end
9
9
 
10
- let(:event) { mock 'Event' }
11
- let(:response) { mock 'Response' }
10
+ let(:event) { double 'Event' }
11
+ let(:response) { double 'Response' }
12
12
 
13
13
  it 'can register a handler' do
14
- response.expects(:call).twice.with(event)
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.expects(:call).twice.with(event)
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.expects(:call).times(3).with(event)
29
- event.expects(:foo).times(3).returns :bar
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 = mock 'Event(nomatch)'
32
- nomatch_event.expects(:foo).twice.returns :baz
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.expects(:call).once.with(event)
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.expects(:handle).once
62
- response.expects(:fail).never
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.expects(:handle).once
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.expects(:handle1).once
87
- response.expects(:handle2).once
88
- response.expects(:fail).never
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.expects(:handle1).once
103
- response.expects(:fail).never
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
- sequence = sequence 'handler_priority'
116
- response.expects(:handle1).once.in_sequence sequence
117
- response.expects(:handle2).once.in_sequence sequence
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
- sequence = sequence 'handler_priority'
138
- response.expects(:handle1).once.in_sequence sequence
139
- response.expects(:handle2).once.in_sequence sequence
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.expects(:call).once
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.expects(:call).once
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.expects(:call).once
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.expects(:call).once
243
+ response.should_receive(:call).once
191
244
  subject.register_handler(:event, :chat?) { |_| response.call }
192
245
 
193
- event.expects(:chat?).returns true
246
+ event.should_receive(:chat?).and_return true
194
247
  subject.trigger_handler :event, event
195
248
 
196
- event.expects(:chat?).returns false
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.expects(:call).once
254
+ response.should_receive(:call).once
202
255
  subject.register_handler(:event, :body => 'exit') { |_| response.call }
203
256
 
204
- event.expects(:body).returns 'exit'
257
+ event.should_receive(:body).and_return 'exit'
205
258
  subject.trigger_handler :event, event
206
259
 
207
- event.expects(:body).returns 'not-exit'
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.expects(:call).once
265
+ response.should_receive(:call).once
213
266
  subject.register_handler(:event, :number => 0) { |_| response.call }
214
267
 
215
- event.expects(:number).returns 0
268
+ event.should_receive(:number).and_return 0
216
269
  subject.trigger_handler :event, event
217
270
 
218
- event.expects(:number).returns 1
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.expects(:call).once
276
+ response.should_receive(:call).once
224
277
  subject.register_handler(:event, :body => /exit/) { |_| response.call }
225
278
 
226
- event.expects(:body).returns 'more than just exit, but exit still'
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.expects(:body).returns 'keyword not found'
282
+ event.should_receive(:body).and_return 'keyword not found'
230
283
  subject.trigger_handler :event, event
231
284
 
232
- event.expects(:body).returns nil
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.expects(:call).once
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.expects(:call).twice
299
+ response.should_receive(:call).twice
247
300
  subject.register_handler(:event, :type => [:result, :error]) { |_| response.call }
248
301
 
249
- event = mock 'Event'
250
- event.expects(:type).at_least_once.returns :result
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 = mock 'Event'
254
- event.expects(:type).at_least_once.returns :error
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 = mock 'Event'
258
- event.expects(:type).at_least_once.returns :get
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.expects(:call).once
316
+ response.should_receive(:call).once
264
317
  subject.register_handler(:event, :type => :get, :body => 'test') { |_| response.call }
265
318
 
266
- event = mock 'Event'
267
- event.expects(:type).at_least_once.returns :get
268
- event.expects(:body).returns 'test'
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 = mock 'Event'
272
- event.expects(:type).at_least_once.returns :set
273
- event.expects(:body).never
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.expects(:call).twice
331
+ response.should_receive(:call).twice
279
332
  subject.register_handler(:event, [{:type => :get}, {:body => 'test'}]) { |_| response.call }
280
333
 
281
- event = mock 'Event'
282
- event.expects(:type).at_least_once.returns :set
283
- event.expects(:body).returns 'test'
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 = mock 'Event'
287
- event.stubs(:type).at_least_once.returns :get
288
- event.expects(:body).never
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.expects(:call).once
346
+ response.should_receive(:call).once
294
347
  subject.register_handler(:event, lambda { |e| e.number % 3 == 0 }) { |_| response.call }
295
348
 
296
- event.expects(:number).at_least_once.returns 3
349
+ event.should_receive(:number).once.and_return 3
297
350
  subject.trigger_handler :event, event
298
351
 
299
- event.expects(:number).at_least_once.returns 2
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
@@ -4,7 +4,6 @@ require 'has_guarded_handlers'
4
4
  Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
5
5
 
6
6
  RSpec.configure do |config|
7
- config.mock_with :mocha
8
7
  config.filter_run :focus => true
9
8
  config.run_all_when_everything_filtered = true
10
9
  end
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.0
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: 2012-12-08 00:00:00.000000000 Z
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: 1.8.24
139
+ rubygems_version: 2.2.0
176
140
  signing_key:
177
- specification_version: 3
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: