lspace 0.8 → 0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -141,12 +141,20 @@ module EventMachine
141
141
  define_method(method) { |*a, &b| LSpace.enter(@lspace) { super(*a, &b) } }
142
142
  end
143
143
 
144
- # EM uses the arity of unbind to decide which arguments to pass it.
145
- # AFAIK the no-argument version is considerably more popular, so we use that here.
144
+ # EM uses the arity of unbind to decide which arguments to pass
145
+ # it, so we'll do that too
146
146
  [:unbind].each do |method|
147
- define_method(method) do |*a, &b|
147
+ define_method(method) do |reason|
148
148
  LSpace.enter(@lspace) do
149
- super()
149
+ orig_method = self.class.ancestors.
150
+ map {|kls| kls.instance_method(:unbind) rescue nil}.
151
+ compact.
152
+ first
153
+ if orig_method.arity.abs == 1
154
+ super(reason)
155
+ else
156
+ super()
157
+ end
150
158
  end
151
159
  end
152
160
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "lspace"
3
- s.version = "0.8"
3
+ s.version = "0.9"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.author = "Conrad Irwin"
6
6
  s.email = "conrad.irwin@gmail.com"
@@ -166,5 +166,21 @@ describe LSpace do
166
166
  end
167
167
  end
168
168
  end
169
+
170
+ it "should preserve an argument to unbind if one is given" do
171
+ seen = nil
172
+ client = Module.new do
173
+ define_method(:unbind) do |reason|
174
+ seen = reason
175
+ EM::stop
176
+ end
177
+ end
178
+
179
+ EM::run do
180
+ EM::connect 'localhost', 9345, client
181
+ end
182
+
183
+ seen.should == Errno::ECONNREFUSED
184
+ end
169
185
  end
170
186
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lspace
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.8'
4
+ version: '0.9'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,120 +9,120 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-17 00:00:00.000000000 Z
12
+ date: 2013-02-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- type: :development
15
+ name: rspec
16
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
17
18
  requirements:
18
19
  - - ! '>='
19
20
  - !ruby/object:Gem::Version
20
21
  version: '0'
21
- none: false
22
+ type: :development
23
+ prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0'
27
- none: false
28
- prerelease: false
29
- name: rspec
30
30
  - !ruby/object:Gem::Dependency
31
- type: :development
31
+ name: pry-rescue
32
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
33
34
  requirements:
34
35
  - - ! '>='
35
36
  - !ruby/object:Gem::Version
36
37
  version: '0'
37
- none: false
38
+ type: :development
39
+ prerelease: false
38
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
39
42
  requirements:
40
43
  - - ! '>='
41
44
  - !ruby/object:Gem::Version
42
45
  version: '0'
43
- none: false
44
- prerelease: false
45
- name: pry-rescue
46
46
  - !ruby/object:Gem::Dependency
47
- type: :development
47
+ name: pry-stack_explorer
48
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
49
50
  requirements:
50
51
  - - ! '>='
51
52
  - !ruby/object:Gem::Version
52
53
  version: '0'
53
- none: false
54
+ type: :development
55
+ prerelease: false
54
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
55
58
  requirements:
56
59
  - - ! '>='
57
60
  - !ruby/object:Gem::Version
58
61
  version: '0'
59
- none: false
60
- prerelease: false
61
- name: pry-stack_explorer
62
62
  - !ruby/object:Gem::Dependency
63
- type: :development
63
+ name: eventmachine
64
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
65
66
  requirements:
66
67
  - - ! '>='
67
68
  - !ruby/object:Gem::Version
68
69
  version: '0'
69
- none: false
70
+ type: :development
71
+ prerelease: false
70
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
71
74
  requirements:
72
75
  - - ! '>='
73
76
  - !ruby/object:Gem::Version
74
77
  version: '0'
75
- none: false
76
- prerelease: false
77
- name: eventmachine
78
78
  - !ruby/object:Gem::Dependency
79
- type: :development
79
+ name: celluloid
80
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
81
82
  requirements:
82
83
  - - ! '>='
83
84
  - !ruby/object:Gem::Version
84
85
  version: '0'
85
- none: false
86
+ type: :development
87
+ prerelease: false
86
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
87
90
  requirements:
88
91
  - - ! '>='
89
92
  - !ruby/object:Gem::Version
90
93
  version: '0'
91
- none: false
92
- prerelease: false
93
- name: celluloid
94
94
  - !ruby/object:Gem::Dependency
95
- type: :development
95
+ name: yard
96
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
97
98
  requirements:
98
99
  - - ! '>='
99
100
  - !ruby/object:Gem::Version
100
101
  version: '0'
101
- none: false
102
+ type: :development
103
+ prerelease: false
102
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
103
106
  requirements:
104
107
  - - ! '>='
105
108
  - !ruby/object:Gem::Version
106
109
  version: '0'
107
- none: false
108
- prerelease: false
109
- name: yard
110
110
  - !ruby/object:Gem::Dependency
111
- type: :development
111
+ name: redcarpet
112
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
113
114
  requirements:
114
115
  - - ! '>='
115
116
  - !ruby/object:Gem::Version
116
117
  version: '0'
117
- none: false
118
+ type: :development
119
+ prerelease: false
118
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
119
122
  requirements:
120
123
  - - ! '>='
121
124
  - !ruby/object:Gem::Version
122
125
  version: '0'
123
- none: false
124
- prerelease: false
125
- name: redcarpet
126
126
  description: Provides the convenience of global variables, without the safety concerns.
127
127
  email: conrad.irwin@gmail.com
128
128
  executables: []
@@ -155,20 +155,20 @@ rdoc_options: []
155
155
  require_paths:
156
156
  - lib
157
157
  required_ruby_version: !ruby/object:Gem::Requirement
158
+ none: false
158
159
  requirements:
159
160
  - - ! '>='
160
161
  - !ruby/object:Gem::Version
161
162
  version: '0'
162
- none: false
163
163
  required_rubygems_version: !ruby/object:Gem::Requirement
164
+ none: false
164
165
  requirements:
165
166
  - - ! '>='
166
167
  - !ruby/object:Gem::Version
167
168
  version: '0'
168
- none: false
169
169
  requirements: []
170
170
  rubyforge_project:
171
- rubygems_version: 1.8.25
171
+ rubygems_version: 1.8.23
172
172
  signing_key:
173
173
  specification_version: 3
174
174
  summary: Provides local global storage