lspace 0.6 → 0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/lspace.rb +1 -1
- data/lib/lspace/class_methods.rb +12 -0
- data/lspace.gemspec +1 -1
- data/spec/class_method_spec.rb +24 -0
- metadata +40 -40
data/lib/lspace.rb
CHANGED
@@ -65,7 +65,7 @@ class LSpace
|
|
65
65
|
# Update the LSpace-variable with the given name.
|
66
66
|
#
|
67
67
|
# Bear in mind that any code using this LSpace will see this change, and consider
|
68
|
-
# using {LSpace.with} instead to localize your changes.
|
68
|
+
# using {LSpace.with} or {LSpace.fork} instead to localize your changes.
|
69
69
|
#
|
70
70
|
# This method is mostly useful for setting up a new LSpace before any code is
|
71
71
|
# using it, and has no effect on parent LSpaces.
|
data/lib/lspace/class_methods.rb
CHANGED
@@ -76,6 +76,18 @@ class LSpace
|
|
76
76
|
self.current = previous
|
77
77
|
end
|
78
78
|
|
79
|
+
# Replace the current LSpace with a fork of it.
|
80
|
+
#
|
81
|
+
# Forking the Lspace means that values changed with LSpace#[]= no
|
82
|
+
# longer affect parent LSpaces.
|
83
|
+
#
|
84
|
+
# This should be used carefully - it may confuse around_filters,
|
85
|
+
# since they will see a different LSpace after the block is called
|
86
|
+
# than before.
|
87
|
+
def self.fork
|
88
|
+
self.current = LSpace.new({}, self.current)
|
89
|
+
end
|
90
|
+
|
79
91
|
# Create a closure that will re-enter the current LSpace when the block is called.
|
80
92
|
#
|
81
93
|
# @example
|
data/lspace.gemspec
CHANGED
data/spec/class_method_spec.rb
CHANGED
@@ -82,6 +82,30 @@ describe LSpace do
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
+
describe ".fork" do
|
86
|
+
it "should not propagate variable changes to the parent LSpace" do
|
87
|
+
LSpace.enter(@lspace) do
|
88
|
+
LSpace.fork
|
89
|
+
LSpace[:foo] = 5
|
90
|
+
LSpace[:foo].should == 5
|
91
|
+
end
|
92
|
+
@lspace[:foo].should be_nil
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should show the new forked LSpace to around_filters after returning" do
|
96
|
+
@lspace.around_filter do |&block|
|
97
|
+
LSpace[:foo].should == 4
|
98
|
+
block.call
|
99
|
+
LSpace[:foo].should == 5
|
100
|
+
end
|
101
|
+
@lspace[:foo] = 4
|
102
|
+
@lspace.enter do
|
103
|
+
LSpace.fork
|
104
|
+
LSpace[:foo] = 5
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
85
109
|
describe ".preserve" do
|
86
110
|
it "should delegate to LSpace.current" do
|
87
111
|
LSpace.current.should_receive(:wrap).once
|
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.
|
4
|
+
version: '0.7'
|
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-
|
12
|
+
date: 2013-02-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
|
15
|
+
type: :development
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
17
|
requirements:
|
19
18
|
- - ! '>='
|
20
19
|
- !ruby/object:Gem::Version
|
21
20
|
version: '0'
|
22
|
-
type: :development
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
21
|
none: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
27
|
+
none: false
|
28
|
+
prerelease: false
|
29
|
+
name: rspec
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
|
31
|
+
type: :development
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
33
|
requirements:
|
35
34
|
- - ! '>='
|
36
35
|
- !ruby/object:Gem::Version
|
37
36
|
version: '0'
|
38
|
-
type: :development
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
37
|
none: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
39
|
requirements:
|
43
40
|
- - ! '>='
|
44
41
|
- !ruby/object:Gem::Version
|
45
42
|
version: '0'
|
43
|
+
none: false
|
44
|
+
prerelease: false
|
45
|
+
name: pry-rescue
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
|
47
|
+
type: :development
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
49
|
requirements:
|
51
50
|
- - ! '>='
|
52
51
|
- !ruby/object:Gem::Version
|
53
52
|
version: '0'
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
53
|
none: false
|
54
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
55
|
requirements:
|
59
56
|
- - ! '>='
|
60
57
|
- !ruby/object:Gem::Version
|
61
58
|
version: '0'
|
59
|
+
none: false
|
60
|
+
prerelease: false
|
61
|
+
name: pry-stack_explorer
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
|
63
|
+
type: :development
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
65
|
requirements:
|
67
66
|
- - ! '>='
|
68
67
|
- !ruby/object:Gem::Version
|
69
68
|
version: '0'
|
70
|
-
type: :development
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
69
|
none: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
71
|
requirements:
|
75
72
|
- - ! '>='
|
76
73
|
- !ruby/object:Gem::Version
|
77
74
|
version: '0'
|
75
|
+
none: false
|
76
|
+
prerelease: false
|
77
|
+
name: eventmachine
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
|
79
|
+
type: :development
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
81
|
requirements:
|
83
82
|
- - ! '>='
|
84
83
|
- !ruby/object:Gem::Version
|
85
84
|
version: '0'
|
86
|
-
type: :development
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
85
|
none: false
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
87
|
requirements:
|
91
88
|
- - ! '>='
|
92
89
|
- !ruby/object:Gem::Version
|
93
90
|
version: '0'
|
91
|
+
none: false
|
92
|
+
prerelease: false
|
93
|
+
name: celluloid
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
|
-
|
95
|
+
type: :development
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
97
|
requirements:
|
99
98
|
- - ! '>='
|
100
99
|
- !ruby/object:Gem::Version
|
101
100
|
version: '0'
|
102
|
-
type: :development
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
101
|
none: false
|
102
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
103
|
requirements:
|
107
104
|
- - ! '>='
|
108
105
|
- !ruby/object:Gem::Version
|
109
106
|
version: '0'
|
107
|
+
none: false
|
108
|
+
prerelease: false
|
109
|
+
name: yard
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
|
-
|
111
|
+
type: :development
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
113
|
requirements:
|
115
114
|
- - ! '>='
|
116
115
|
- !ruby/object:Gem::Version
|
117
116
|
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
117
|
none: false
|
118
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
119
|
requirements:
|
123
120
|
- - ! '>='
|
124
121
|
- !ruby/object:Gem::Version
|
125
122
|
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
|
159
158
|
requirements:
|
160
159
|
- - ! '>='
|
161
160
|
- !ruby/object:Gem::Version
|
162
161
|
version: '0'
|
163
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
162
|
none: false
|
163
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
164
|
requirements:
|
166
165
|
- - ! '>='
|
167
166
|
- !ruby/object:Gem::Version
|
168
167
|
version: '0'
|
168
|
+
none: false
|
169
169
|
requirements: []
|
170
170
|
rubyforge_project:
|
171
|
-
rubygems_version: 1.8.
|
171
|
+
rubygems_version: 1.8.25
|
172
172
|
signing_key:
|
173
173
|
specification_version: 3
|
174
174
|
summary: Provides local global storage
|