has-guarded-handlers 1.4.1 → 1.4.2
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/CHANGELOG.md +3 -0
- data/lib/has_guarded_handlers.rb +5 -1
- data/lib/has_guarded_handlers/version.rb +1 -1
- data/spec/has_guarded_handlers_spec.rb +14 -0
- metadata +3 -3
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# [develop](https://github.com/adhearsion/has-guarded-handlers)
|
2
2
|
|
3
|
+
# [1.4.2](https://github.com/adhearsion/has-guarded-handlers/compare/v1.4.1...v1.4.2) - [2012-12-08](https://rubygems.org/gems/has-guarded-handlers/versions/1.4.2)
|
4
|
+
* Bugfix: Preserve the old 'API' by which handlers were called
|
5
|
+
|
3
6
|
# [1.4.1](https://github.com/adhearsion/has-guarded-handlers/compare/v1.4.0...v1.4.1) - [2012-12-08](https://rubygems.org/gems/has-guarded-handlers/versions/1.4.1)
|
4
7
|
* Bugfix: Report handler execution correctly in edge cases
|
5
8
|
|
data/lib/has_guarded_handlers.rb
CHANGED
@@ -88,7 +88,7 @@ module HasGuardedHandlers
|
|
88
88
|
if guarded?(guards, event)
|
89
89
|
called = false
|
90
90
|
else
|
91
|
-
handler
|
91
|
+
call_handler handler, event
|
92
92
|
true
|
93
93
|
end
|
94
94
|
end
|
@@ -101,6 +101,10 @@ module HasGuardedHandlers
|
|
101
101
|
|
102
102
|
private
|
103
103
|
|
104
|
+
def call_handler(handler, event)
|
105
|
+
handler.call event
|
106
|
+
end
|
107
|
+
|
104
108
|
def delete_handler_if(type, &block) # :nodoc:
|
105
109
|
guarded_handlers[type].each_pair do |priority, handlers|
|
106
110
|
handlers.delete_if(&block)
|
@@ -68,6 +68,20 @@ describe HasGuardedHandlers do
|
|
68
68
|
subject.trigger_handler(:event, event).should be_true
|
69
69
|
end
|
70
70
|
|
71
|
+
context 'when multiple handlers are registered' do
|
72
|
+
it "stops at the first matching handler regardless of return value" do
|
73
|
+
response.expects(:handle).once
|
74
|
+
subject.register_handler :event do |_|
|
75
|
+
response.handle
|
76
|
+
false
|
77
|
+
end
|
78
|
+
subject.register_handler :event do |_|
|
79
|
+
response.handle
|
80
|
+
end
|
81
|
+
subject.trigger_handler(:event, event).should be_true
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
71
85
|
it 'allows for passing to the next handler of the same type' do
|
72
86
|
response.expects(:handle1).once
|
73
87
|
response.expects(:handle2).once
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has-guarded-handlers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -160,7 +160,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
160
160
|
version: '0'
|
161
161
|
segments:
|
162
162
|
- 0
|
163
|
-
hash:
|
163
|
+
hash: 1044728951483733350
|
164
164
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
165
|
none: false
|
166
166
|
requirements:
|
@@ -169,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
169
|
version: '0'
|
170
170
|
segments:
|
171
171
|
- 0
|
172
|
-
hash:
|
172
|
+
hash: 1044728951483733350
|
173
173
|
requirements: []
|
174
174
|
rubyforge_project: has-guarded-handlers
|
175
175
|
rubygems_version: 1.8.24
|