lspace 0.12 → 0.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b82968b154619d2f538430c695f2ecd2152ac13a
4
+ data.tar.gz: c1b4bf625372e7368cc9f74477cb0bb1ed5e7f85
5
+ SHA512:
6
+ metadata.gz: a68fc1eff39850d5f162124a23d7faf321f2bba8ccceb8a931ce55bf1f6ce8f71115f3b318b5dd487ff984a02da84cc744f3682d49fba4325c21b7c4623917b4
7
+ data.tar.gz: 1a694c690c4ea18f896ac72753f7aeb817fd65aee1526b3976a96bd6c06c742d27f2d88cb0fd9b9cd07e83b6c1e9256054b1f1a88a013bfee60dc20939d5e5d2
@@ -121,6 +121,30 @@ class LSpace
121
121
  self
122
122
  end
123
123
 
124
+ # Add an error handler to this LSpace.
125
+ #
126
+ # @example
127
+ # lspace = LSpace.new
128
+ # lspace.rescue do |e|
129
+ # puts "Job #{LSpace[:job_id]} failed with: #{e}
130
+ # end
131
+ #
132
+ # LSpace.enter(lspace) do
133
+ # Thread.new{ reaise "foo" }.join
134
+ # end
135
+ #
136
+ def rescue(*exceptions, &handler)
137
+ exceptions << RuntimeError unless exceptions.any?
138
+
139
+ around_filter do |&block|
140
+ begin
141
+ block.call
142
+ rescue *exceptions => e
143
+ handler.call e
144
+ end
145
+ end
146
+ end
147
+
124
148
  # Enter this LSpace for the duration of the block
125
149
  #
126
150
  # @see LSpace.enter
@@ -135,6 +135,13 @@ class LSpace
135
135
  current.around_filter(&filter)
136
136
  end
137
137
 
138
+ # Add an exception handler
139
+ #
140
+ # @see LSpace#rescue
141
+ def self.rescue(*exceptions, &handler)
142
+ current.rescue(*exceptions, &handler)
143
+ end
144
+
138
145
  # Get the current LSpace
139
146
  #
140
147
  # @return [LSpace]
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "lspace"
3
- s.version = "0.12"
3
+ s.version = "0.13"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.author = "Conrad Irwin"
6
6
  s.email = "conrad.irwin@gmail.com"
@@ -1,12 +1,5 @@
1
1
  require_relative '../lib/lspace'
2
2
  require_relative '../lib/lspace/eventmachine'
3
3
  require_relative '../lib/lspace/celluloid'
4
+ require_relative '../lib/lspace/rspec'
4
5
  require 'pry-rescue/rspec'
5
-
6
- RSpec.configure do |c|
7
- c.around(:each) do |example|
8
- LSpace.clean do
9
- example.run
10
- end
11
- end
12
- end
metadata CHANGED
@@ -1,126 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lspace
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.12'
5
- prerelease:
4
+ version: '0.13'
6
5
  platform: ruby
7
6
  authors:
8
7
  - Conrad Irwin
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-18 00:00:00.000000000 Z
11
+ date: 2013-11-26 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: pry-rescue
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: pry-stack_explorer
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: eventmachine
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: celluloid
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: yard
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: redcarpet
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  description: Provides the convenience of global variables, without the safety concerns.
@@ -151,27 +136,26 @@ files:
151
136
  - spec/spec_helper.rb
152
137
  homepage: http://github.com/ConradIrwin/lspace
153
138
  licenses: []
139
+ metadata: {}
154
140
  post_install_message:
155
141
  rdoc_options: []
156
142
  require_paths:
157
143
  - lib
158
144
  required_ruby_version: !ruby/object:Gem::Requirement
159
- none: false
160
145
  requirements:
161
- - - ! '>='
146
+ - - '>='
162
147
  - !ruby/object:Gem::Version
163
148
  version: '0'
164
149
  required_rubygems_version: !ruby/object:Gem::Requirement
165
- none: false
166
150
  requirements:
167
- - - ! '>='
151
+ - - '>='
168
152
  - !ruby/object:Gem::Version
169
153
  version: '0'
170
154
  requirements: []
171
155
  rubyforge_project:
172
- rubygems_version: 1.8.23
156
+ rubygems_version: 2.0.3
173
157
  signing_key:
174
- specification_version: 3
158
+ specification_version: 4
175
159
  summary: Provides local global storage
176
160
  test_files: []
177
161
  has_rdoc: