isolate 2.0.0.pre.2 → 2.0.0.pre.3
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/CHANGELOG.rdoc +7 -0
- data/README.rdoc +7 -3
- data/lib/isolate.rb +1 -1
- data/lib/isolate/events.rb +3 -3
- data/lib/isolate/sandbox.rb +32 -10
- metadata +4 -4
data/CHANGELOG.rdoc
CHANGED
data/README.rdoc
CHANGED
|
@@ -95,7 +95,9 @@ the top of your Rakefile. See the RDoc for details.
|
|
|
95
95
|
|
|
96
96
|
== Rake
|
|
97
97
|
|
|
98
|
-
Isolate provides a few useful Rake tasks.
|
|
98
|
+
Isolate provides a few useful Rake tasks. If you're requiring
|
|
99
|
+
<tt>isolate/now</tt>, you'll get them automatically when you run
|
|
100
|
+
Rake. If not, you can include them by requiring <tt>isolate/rake</tt>.
|
|
99
101
|
|
|
100
102
|
=== isolate:env
|
|
101
103
|
|
|
@@ -161,8 +163,10 @@ public API, please see the RDoc.
|
|
|
161
163
|
|
|
162
164
|
== Meta
|
|
163
165
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
+
RDoc:: http://rdoc.info/projects/jbarnette/isolate
|
|
167
|
+
Bugs:: http://github.com/jbarnette/isolate/issues
|
|
168
|
+
IRC:: #isolate on Freenode
|
|
169
|
+
Mailing List:: isolate@librelist.com
|
|
166
170
|
|
|
167
171
|
== License
|
|
168
172
|
|
data/lib/isolate.rb
CHANGED
data/lib/isolate/events.rb
CHANGED
|
@@ -2,9 +2,9 @@ module Isolate
|
|
|
2
2
|
|
|
3
3
|
# A simple way to watch and extend the Isolate lifecycle.
|
|
4
4
|
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
5
|
+
# Isolate::Events.watch Isolate::Sandbox, :initialized do |sandbox|
|
|
6
|
+
# puts "A sandbox just got initialized: #{sandbox}"
|
|
7
|
+
# end
|
|
8
8
|
#
|
|
9
9
|
# Read the source for Isolate::Sandbox and Isolate::Entry to see
|
|
10
10
|
# what sort of events are fired.
|
data/lib/isolate/sandbox.rb
CHANGED
|
@@ -80,16 +80,9 @@ module Isolate
|
|
|
80
80
|
def cleanup # :nodoc:
|
|
81
81
|
fire :cleaning
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
extra = available.reject do |spec|
|
|
87
|
-
active = activated.include? spec.full_name
|
|
88
|
-
entry = entries.find { |e| e.matches_spec? spec }
|
|
89
|
-
system = !spec.loaded_from.include?(path)
|
|
90
|
-
|
|
91
|
-
active or entry or system
|
|
92
|
-
end
|
|
83
|
+
installed = index.gems.values.sort
|
|
84
|
+
legit = legitimize!
|
|
85
|
+
extra = installed - legit
|
|
93
86
|
|
|
94
87
|
unless extra.empty?
|
|
95
88
|
padding = Math.log10(extra.size).to_i + 1
|
|
@@ -216,6 +209,12 @@ module Isolate
|
|
|
216
209
|
entry
|
|
217
210
|
end
|
|
218
211
|
|
|
212
|
+
# A source index representing only isolated gems.
|
|
213
|
+
|
|
214
|
+
def index
|
|
215
|
+
@index ||= Gem::SourceIndex.from_gems_in File.join(path, "specifications")
|
|
216
|
+
end
|
|
217
|
+
|
|
219
218
|
def install environment # :nodoc:
|
|
220
219
|
fire :installing
|
|
221
220
|
|
|
@@ -233,6 +232,7 @@ module Isolate
|
|
|
233
232
|
entry.install
|
|
234
233
|
end
|
|
235
234
|
|
|
235
|
+
index.refresh!
|
|
236
236
|
Gem.source_index.refresh!
|
|
237
237
|
end
|
|
238
238
|
|
|
@@ -282,5 +282,27 @@ module Isolate
|
|
|
282
282
|
def verbose?
|
|
283
283
|
@options.fetch :verbose, true
|
|
284
284
|
end
|
|
285
|
+
|
|
286
|
+
private
|
|
287
|
+
|
|
288
|
+
# Returns a list of Gem::Specification instances that 1. exist in
|
|
289
|
+
# the isolated gem path, and 2. are allowed to be there. Used in
|
|
290
|
+
# cleanup. It's only an external method 'cause recursion is
|
|
291
|
+
# easier.
|
|
292
|
+
|
|
293
|
+
def legitimize! deps = entries
|
|
294
|
+
[].tap do |specs|
|
|
295
|
+
deps.flatten.each do |dep|
|
|
296
|
+
spec = index.find_name(dep.name, dep.requirement).last
|
|
297
|
+
|
|
298
|
+
if spec
|
|
299
|
+
specs.concat legitimize!(spec.runtime_dependencies)
|
|
300
|
+
specs << spec
|
|
301
|
+
end
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
specs.uniq!
|
|
305
|
+
end
|
|
306
|
+
end
|
|
285
307
|
end
|
|
286
308
|
end
|
metadata
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: isolate
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 1923832047
|
|
5
5
|
prerelease: true
|
|
6
6
|
segments:
|
|
7
7
|
- 2
|
|
8
8
|
- 0
|
|
9
9
|
- 0
|
|
10
10
|
- pre
|
|
11
|
-
-
|
|
12
|
-
version: 2.0.0.pre.
|
|
11
|
+
- 3
|
|
12
|
+
version: 2.0.0.pre.3
|
|
13
13
|
platform: ruby
|
|
14
14
|
authors:
|
|
15
15
|
- John Barnette
|
|
@@ -18,7 +18,7 @@ autorequire:
|
|
|
18
18
|
bindir: bin
|
|
19
19
|
cert_chain: []
|
|
20
20
|
|
|
21
|
-
date: 2010-05-
|
|
21
|
+
date: 2010-05-09 00:00:00 -07:00
|
|
22
22
|
default_executable:
|
|
23
23
|
dependencies:
|
|
24
24
|
- !ruby/object:Gem::Dependency
|