lspace 0.13 → 0.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b82968b154619d2f538430c695f2ecd2152ac13a
4
- data.tar.gz: c1b4bf625372e7368cc9f74477cb0bb1ed5e7f85
3
+ metadata.gz: fc01ea3414b6b3190d21eb9e3eccf7db32184fcc
4
+ data.tar.gz: 448b74b904501cae6d482d2a789cae1ab4949ec0
5
5
  SHA512:
6
- metadata.gz: a68fc1eff39850d5f162124a23d7faf321f2bba8ccceb8a931ce55bf1f6ce8f71115f3b318b5dd487ff984a02da84cc744f3682d49fba4325c21b7c4623917b4
7
- data.tar.gz: 1a694c690c4ea18f896ac72753f7aeb817fd65aee1526b3976a96bd6c06c742d27f2d88cb0fd9b9cd07e83b6c1e9256054b1f1a88a013bfee60dc20939d5e5d2
6
+ metadata.gz: 23b7ebffe6c0e819e51651601461abab924c3ba40abb0bbf857c82e3c409532cc21ccef962c7c5755a656f4ebfa76c6393f2ad79506da3f81c9fbc93805abc26
7
+ data.tar.gz: 9c6a454f1db1b09189397fa2f0ce90e5db2cf962da9a3fd04b91ef2eae264ee6bf8e26fe43ec64fc0b8461ab50bdb00c3f9ad3efd6ae8978d74dc93a56acaf29
data/README.md CHANGED
@@ -30,8 +30,8 @@ Operation safety
30
30
 
31
31
  LSpace is thread-safe, so entering a new LSpace on one thread won't affect any of the
32
32
  other Threads. In addition, LSpace also comes with extensions for
33
- [eventmachine](https://github.com/eventmachine/eventmachine) and
34
- [celluloid](http://celluloid.io/) which extends the notion of thread-safety to
33
+ [eventmachine](https://github.com/eventmachine/eventmachine),
34
+ [celluloid](http://celluloid.io/), and fiber which extends the notion of thread-safety to
35
35
  operation-safety.
36
36
 
37
37
  This means that even if you're doing multiple things on one thread, or one thing using
@@ -65,6 +65,14 @@ end
65
65
 
66
66
  See also [examples/celluloid.rb](https://github.com/ConradIrwin/lspace/tree/master/examples/celluloid.rb).
67
67
 
68
+
69
+ ```ruby
70
+ require 'lspace/fiber'
71
+ LSpace.with(:user_id => 5) do
72
+ Fiber.new { LSpace[:user_id] == 5 }.resume
73
+ end
74
+ ```
75
+
68
76
  `lspace_reader`
69
77
  ===============
70
78
 
@@ -130,7 +130,7 @@ class LSpace
130
130
  # end
131
131
  #
132
132
  # LSpace.enter(lspace) do
133
- # Thread.new{ reaise "foo" }.join
133
+ # Thread.new{ raise "foo" }.join
134
134
  # end
135
135
  #
136
136
  def rescue(*exceptions, &handler)
@@ -0,0 +1,3 @@
1
+ class << Fiber
2
+ in_lspace :new
3
+ end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "lspace"
3
- s.version = "0.13"
3
+ s.version = "0.14"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.author = "Conrad Irwin"
6
6
  s.email = "conrad.irwin@gmail.com"
@@ -74,12 +74,6 @@ describe LSpace do
74
74
  Thread.new{ LSpace.current.should_not == @lspace }.join
75
75
  end
76
76
  end
77
-
78
- it "should not effect other fibers" do
79
- LSpace.enter(@lspace) do
80
- Fiber.new{ LSpace.current.should_not == @lspace }.resume
81
- end
82
- end
83
77
  end
84
78
 
85
79
  describe ".fork" do
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe LSpace do
4
+ it "should be preserved across Fiber resumes" do
5
+ LSpace.with(:foo => 2) do
6
+ $fiber = Fiber.new do
7
+ $foo = LSpace[:foo]
8
+ end
9
+ end
10
+ $fiber.resume
11
+ $foo.should == 2
12
+ end
13
+ end
@@ -1,5 +1,6 @@
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/fiber'
4
5
  require_relative '../lib/lspace/rspec'
5
6
  require 'pry-rescue/rspec'
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lspace
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.13'
4
+ version: '0.14'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Conrad Irwin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-26 00:00:00.000000000 Z
11
+ date: 2017-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pry-rescue
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry-stack_explorer
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: eventmachine
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: celluloid
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: yard
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: redcarpet
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: Provides the convenience of global variables, without the safety concerns.
@@ -114,7 +114,7 @@ executables: []
114
114
  extensions: []
115
115
  extra_rdoc_files: []
116
116
  files:
117
- - .gitignore
117
+ - ".gitignore"
118
118
  - Gemfile
119
119
  - LICENSE.MIT
120
120
  - README.md
@@ -125,6 +125,7 @@ files:
125
125
  - lib/lspace/class_methods.rb
126
126
  - lib/lspace/core_ext.rb
127
127
  - lib/lspace/eventmachine.rb
128
+ - lib/lspace/fiber.rb
128
129
  - lib/lspace/rspec.rb
129
130
  - lib/lspace/thread.rb
130
131
  - lspace.gemspec
@@ -132,6 +133,7 @@ files:
132
133
  - spec/class_method_spec.rb
133
134
  - spec/core_ext_spec.rb
134
135
  - spec/eventmachine_spec.rb
136
+ - spec/fiber_spec.rb
135
137
  - spec/lspace_spec.rb
136
138
  - spec/spec_helper.rb
137
139
  homepage: http://github.com/ConradIrwin/lspace
@@ -143,19 +145,18 @@ require_paths:
143
145
  - lib
144
146
  required_ruby_version: !ruby/object:Gem::Requirement
145
147
  requirements:
146
- - - '>='
148
+ - - ">="
147
149
  - !ruby/object:Gem::Version
148
150
  version: '0'
149
151
  required_rubygems_version: !ruby/object:Gem::Requirement
150
152
  requirements:
151
- - - '>='
153
+ - - ">="
152
154
  - !ruby/object:Gem::Version
153
155
  version: '0'
154
156
  requirements: []
155
157
  rubyforge_project:
156
- rubygems_version: 2.0.3
158
+ rubygems_version: 2.6.8
157
159
  signing_key:
158
160
  specification_version: 4
159
161
  summary: Provides local global storage
160
162
  test_files: []
161
- has_rdoc: