has-guarded-handlers 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,2 +1,5 @@
1
+ # 0.0.2
2
+ # Bugfix: The mixin now does not hijack the target's initializer which was causing issues with inheritance
3
+
1
4
  # 0.0.1
2
5
  * Feature: Some code that works!
@@ -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
@@ -1,3 +1,3 @@
1
1
  module HasGuardedHandlers
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -1,10 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe TestObject do
4
- subject { TestObject.new :bar }
5
-
6
4
  it { should be_a TestObject }
7
- its(:foo) { should == :bar }
8
5
 
9
6
  let(:event) { mock 'Event' }
10
7
  let(:response) { mock 'Response' }
data/spec/spec_helper.rb CHANGED
@@ -12,11 +12,4 @@ end
12
12
 
13
13
  class TestObject
14
14
  include HasGuardedHandlers
15
-
16
- attr_reader :foo
17
-
18
- def initialize(foo)
19
- @foo = foo
20
- super
21
- end
22
15
  end
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.1
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: &2157593120 !ruby/object:Gem::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: *2157593120
26
+ version_requirements: *2156834960
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
- requirement: &2157592500 !ruby/object:Gem::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: *2157592500
37
+ version_requirements: *2156834420
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: mocha
40
- requirement: &2157591880 !ruby/object:Gem::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: *2157591880
48
+ version_requirements: *2156833900
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: ci_reporter
51
- requirement: &2157591320 !ruby/object:Gem::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: *2157591320
59
+ version_requirements: *2156833420
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: yard
62
- requirement: &2157590820 !ruby/object:Gem::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: *2157590820
70
+ version_requirements: *2156832900
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: rake
73
- requirement: &2157590320 !ruby/object:Gem::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: *2157590320
81
+ version_requirements: *2156832380
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: guard-rspec
84
- requirement: &2157589900 !ruby/object:Gem::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: *2157589900
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: