has-guarded-handlers 0.0.1 → 0.0.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 +7 -4
- data/lib/has_guarded_handlers/version.rb +1 -1
- data/spec/has_guarded_handlers_spec.rb +0 -3
- data/spec/spec_helper.rb +0 -7
- metadata +15 -15
data/CHANGELOG.md
CHANGED
data/lib/has_guarded_handlers.rb
CHANGED
@@ -1,16 +1,13 @@
|
|
1
1
|
require "has_guarded_handlers/version"
|
2
2
|
|
3
3
|
module HasGuardedHandlers
|
4
|
-
def initialize(*args)
|
5
|
-
@handlers = {}
|
6
|
-
end
|
7
|
-
|
8
4
|
# Register a handler
|
9
5
|
#
|
10
6
|
# @param [Symbol, nil] type set the filter on a specific handler
|
11
7
|
# @param [guards] guards take a look at the guards documentation
|
12
8
|
# @yield [Object] stanza the incoming event
|
13
9
|
def register_handler(type, *guards, &handler)
|
10
|
+
initialize_guarded_handlers
|
14
11
|
check_guards guards
|
15
12
|
@handlers[type] ||= []
|
16
13
|
@handlers[type] << [guards, handler]
|
@@ -21,10 +18,12 @@ module HasGuardedHandlers
|
|
21
18
|
# @param [Symbol, nil] type remove filters for a specific handler
|
22
19
|
# @param [guards] guards take a look at the guards documentation
|
23
20
|
def clear_handlers(type, *guards)
|
21
|
+
initialize_guarded_handlers
|
24
22
|
@handlers[type].delete_if { |g, _| g == guards }
|
25
23
|
end
|
26
24
|
|
27
25
|
def trigger_handler(type, event)
|
26
|
+
initialize_guarded_handlers
|
28
27
|
return unless handler = @handlers[type]
|
29
28
|
catch :halt do
|
30
29
|
handler.find do |guards, handler|
|
@@ -83,4 +82,8 @@ module HasGuardedHandlers
|
|
83
82
|
end
|
84
83
|
end
|
85
84
|
end
|
85
|
+
|
86
|
+
def initialize_guarded_handlers
|
87
|
+
@handlers ||= {}
|
88
|
+
end
|
86
89
|
end
|
data/spec/spec_helper.rb
CHANGED
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: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -15,7 +15,7 @@ default_executable:
|
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
18
|
-
requirement: &
|
18
|
+
requirement: &2156834960 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
@@ -23,10 +23,10 @@ dependencies:
|
|
23
23
|
version: 1.0.0
|
24
24
|
type: :development
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *2156834960
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
|
-
requirement: &
|
29
|
+
requirement: &2156834420 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ! '>='
|
@@ -34,10 +34,10 @@ dependencies:
|
|
34
34
|
version: 2.5.0
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
|
-
version_requirements: *
|
37
|
+
version_requirements: *2156834420
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: mocha
|
40
|
-
requirement: &
|
40
|
+
requirement: &2156833900 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
@@ -45,10 +45,10 @@ dependencies:
|
|
45
45
|
version: '0'
|
46
46
|
type: :development
|
47
47
|
prerelease: false
|
48
|
-
version_requirements: *
|
48
|
+
version_requirements: *2156833900
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: ci_reporter
|
51
|
-
requirement: &
|
51
|
+
requirement: &2156833420 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
54
54
|
- - ! '>='
|
@@ -56,10 +56,10 @@ dependencies:
|
|
56
56
|
version: 1.6.3
|
57
57
|
type: :development
|
58
58
|
prerelease: false
|
59
|
-
version_requirements: *
|
59
|
+
version_requirements: *2156833420
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: yard
|
62
|
-
requirement: &
|
62
|
+
requirement: &2156832900 !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
64
|
requirements:
|
65
65
|
- - ~>
|
@@ -67,10 +67,10 @@ dependencies:
|
|
67
67
|
version: 0.7.0
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
|
-
version_requirements: *
|
70
|
+
version_requirements: *2156832900
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: rake
|
73
|
-
requirement: &
|
73
|
+
requirement: &2156832380 !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
75
|
requirements:
|
76
76
|
- - ! '>='
|
@@ -78,10 +78,10 @@ dependencies:
|
|
78
78
|
version: '0'
|
79
79
|
type: :development
|
80
80
|
prerelease: false
|
81
|
-
version_requirements: *
|
81
|
+
version_requirements: *2156832380
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
83
|
name: guard-rspec
|
84
|
-
requirement: &
|
84
|
+
requirement: &2156828120 !ruby/object:Gem::Requirement
|
85
85
|
none: false
|
86
86
|
requirements:
|
87
87
|
- - ! '>='
|
@@ -89,7 +89,7 @@ dependencies:
|
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
|
-
version_requirements: *
|
92
|
+
version_requirements: *2156828120
|
93
93
|
description: Allow an object's API to provide flexible handler registration, storage
|
94
94
|
and matching to arbitrary events.
|
95
95
|
email:
|