has-guarded-handlers 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -7,3 +7,4 @@ spec/reports
7
7
  .yardoc
8
8
  doc
9
9
  .*.swp
10
+ vendor/ruby
@@ -1,3 +1,9 @@
1
+ # develop
2
+
3
+ # 1.0.0 - 2012-01-19
4
+ * Bump to 1.0.0 because the API is stable
5
+ * Feature: Allow guarding with a module to test if an object has a mixin
6
+
1
7
  # 0.1.1
2
8
  * Bugfix: Fix an exception when triggering an event when no handlers are set
3
9
 
@@ -68,7 +68,7 @@ module HasGuardedHandlers
68
68
  def guarded?(guards, event)
69
69
  guards.find do |guard|
70
70
  case guard
71
- when Class
71
+ when Class, Module
72
72
  !event.is_a? guard
73
73
  when Symbol
74
74
  !event.__send__ guard
@@ -99,7 +99,7 @@ module HasGuardedHandlers
99
99
  case guard
100
100
  when Array
101
101
  guard.each { |g| check_guards [g] }
102
- when Class, Symbol, Proc, Hash, String
102
+ when Class, Module, Symbol, Proc, Hash, String
103
103
  nil
104
104
  else
105
105
  raise "Bad guard: #{guard.inspect}"
@@ -1,3 +1,3 @@
1
1
  module HasGuardedHandlers
2
- VERSION = "0.1.1"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -100,8 +100,12 @@ describe TestObject do
100
100
  end
101
101
 
102
102
  describe 'guards' do
103
+ GuardMixin = Module.new
104
+ class GuardedObject
105
+ include GuardMixin
106
+ end
107
+
103
108
  it 'can be a class' do
104
- class GuardedObject; end
105
109
  response.expects(:call).once
106
110
  subject.register_handler(:event, GuardedObject) { |_| response.call }
107
111
 
@@ -109,6 +113,14 @@ describe TestObject do
109
113
  subject.trigger_handler :event, Object.new
110
114
  end
111
115
 
116
+ it 'can be a module' do
117
+ response.expects(:call).once
118
+ subject.register_handler(:event, GuardMixin) { |_| response.call }
119
+
120
+ subject.trigger_handler :event, GuardedObject.new
121
+ subject.trigger_handler :event, Object.new
122
+ end
123
+
112
124
  it 'can be a symbol' do
113
125
  response.expects(:call).once
114
126
  subject.register_handler(:event, :chat?) { |_| response.call }
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.1.1
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,12 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-10-30 01:00:00.000000000 +01:00
14
- default_executable:
13
+ date: 2012-01-19 00:00:00.000000000 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: bundler
18
- requirement: &2165053140 !ruby/object:Gem::Requirement
17
+ requirement: &2169268020 !ruby/object:Gem::Requirement
19
18
  none: false
20
19
  requirements:
21
20
  - - ~>
@@ -23,10 +22,10 @@ dependencies:
23
22
  version: 1.0.0
24
23
  type: :development
25
24
  prerelease: false
26
- version_requirements: *2165053140
25
+ version_requirements: *2169268020
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: rspec
29
- requirement: &2165052200 !ruby/object:Gem::Requirement
28
+ requirement: &2169267440 !ruby/object:Gem::Requirement
30
29
  none: false
31
30
  requirements:
32
31
  - - ! '>='
@@ -34,10 +33,10 @@ dependencies:
34
33
  version: 2.5.0
35
34
  type: :development
36
35
  prerelease: false
37
- version_requirements: *2165052200
36
+ version_requirements: *2169267440
38
37
  - !ruby/object:Gem::Dependency
39
38
  name: mocha
40
- requirement: &2165051720 !ruby/object:Gem::Requirement
39
+ requirement: &2169266940 !ruby/object:Gem::Requirement
41
40
  none: false
42
41
  requirements:
43
42
  - - ! '>='
@@ -45,10 +44,10 @@ dependencies:
45
44
  version: '0'
46
45
  type: :development
47
46
  prerelease: false
48
- version_requirements: *2165051720
47
+ version_requirements: *2169266940
49
48
  - !ruby/object:Gem::Dependency
50
49
  name: ci_reporter
51
- requirement: &2165051160 !ruby/object:Gem::Requirement
50
+ requirement: &2169266380 !ruby/object:Gem::Requirement
52
51
  none: false
53
52
  requirements:
54
53
  - - ! '>='
@@ -56,10 +55,10 @@ dependencies:
56
55
  version: 1.6.3
57
56
  type: :development
58
57
  prerelease: false
59
- version_requirements: *2165051160
58
+ version_requirements: *2169266380
60
59
  - !ruby/object:Gem::Dependency
61
60
  name: yard
62
- requirement: &2165050660 !ruby/object:Gem::Requirement
61
+ requirement: &2169265860 !ruby/object:Gem::Requirement
63
62
  none: false
64
63
  requirements:
65
64
  - - ~>
@@ -67,10 +66,10 @@ dependencies:
67
66
  version: 0.7.0
68
67
  type: :development
69
68
  prerelease: false
70
- version_requirements: *2165050660
69
+ version_requirements: *2169265860
71
70
  - !ruby/object:Gem::Dependency
72
71
  name: rake
73
- requirement: &2165050140 !ruby/object:Gem::Requirement
72
+ requirement: &2169265320 !ruby/object:Gem::Requirement
74
73
  none: false
75
74
  requirements:
76
75
  - - ! '>='
@@ -78,10 +77,10 @@ dependencies:
78
77
  version: '0'
79
78
  type: :development
80
79
  prerelease: false
81
- version_requirements: *2165050140
80
+ version_requirements: *2169265320
82
81
  - !ruby/object:Gem::Dependency
83
82
  name: guard-rspec
84
- requirement: &2165049620 !ruby/object:Gem::Requirement
83
+ requirement: &2169264900 !ruby/object:Gem::Requirement
85
84
  none: false
86
85
  requirements:
87
86
  - - ! '>='
@@ -89,7 +88,7 @@ dependencies:
89
88
  version: '0'
90
89
  type: :development
91
90
  prerelease: false
92
- version_requirements: *2165049620
91
+ version_requirements: *2169264900
93
92
  description: Allow an object's API to provide flexible handler registration, storage
94
93
  and matching to arbitrary events.
95
94
  email:
@@ -111,7 +110,6 @@ files:
111
110
  - lib/has_guarded_handlers/version.rb
112
111
  - spec/has_guarded_handlers_spec.rb
113
112
  - spec/spec_helper.rb
114
- has_rdoc: true
115
113
  homepage: http://github.com/adhearsion/has-guarded-handlers
116
114
  licenses: []
117
115
  post_install_message:
@@ -124,15 +122,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
124
122
  - - ! '>='
125
123
  - !ruby/object:Gem::Version
126
124
  version: '0'
125
+ segments:
126
+ - 0
127
+ hash: -748980547343976584
127
128
  required_rubygems_version: !ruby/object:Gem::Requirement
128
129
  none: false
129
130
  requirements:
130
131
  - - ! '>='
131
132
  - !ruby/object:Gem::Version
132
133
  version: '0'
134
+ segments:
135
+ - 0
136
+ hash: -748980547343976584
133
137
  requirements: []
134
138
  rubyforge_project: has-guarded-handlers
135
- rubygems_version: 1.6.2
139
+ rubygems_version: 1.8.10
136
140
  signing_key:
137
141
  specification_version: 3
138
142
  summary: A library for associating a set of event handlers, complete with guards,