isolate 1.1.0 → 1.2.0

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.
@@ -1,3 +1,7 @@
1
+ === 1.2.0 / 2009-09-22
2
+
3
+ * Added a Hoe plugin.
4
+
1
5
  === 1.1.0 / 2009-09-22
2
6
 
3
7
  * Breaking change: Install by default.
@@ -3,6 +3,7 @@ CHANGELOG.rdoc
3
3
  Manifest.txt
4
4
  README.rdoc
5
5
  Rakefile
6
+ lib/hoe/isolate.rb
6
7
  lib/isolate.rb
7
8
  test/fixtures/with-hoe/specifications/hoe-2.3.3.gemspec
8
9
  test/fixtures/with-hoe/specifications/rake-0.8.7.gemspec
@@ -143,13 +143,31 @@ right below where <tt>boot.rb</tt> is required:
143
143
 
144
144
  Pow. Isolated!
145
145
 
146
+ === A Library Example
147
+
148
+ If you're using Hoe[http://blog.zenspider.com/hoe] to manage your
149
+ library, you can use Isolate's Hoe plugin to automatically install
150
+ your lib's development, runtime, and test dependencies without
151
+ polluting your system RubyGems, and run your tests/specs in total
152
+ isolation.
153
+
154
+ Assuming you have a recent Hoe and isolate's installed, it's as simple
155
+ as putting:
156
+
157
+ Hoe.plugin :isolate
158
+
159
+ before the <tt>Hoe.spec</tt> call in your <tt>Rakefile</tt>.
160
+
161
+ If you're not using Hoe, you can just do a regular
162
+ <tt>Isolate.gems</tt> block at the top of your Rakefile.
163
+
146
164
  == Installation
147
165
 
148
166
  $ gem install isolate
149
167
 
150
168
  == License
151
169
 
152
- Copyright 2009 John Barnette (jbarnette@rubyforge.org)
170
+ Copyright 2009 John Barnette, et al. (jbarnette@rubyforge.org)
153
171
 
154
172
  Permission is hereby granted, free of charge, to any person obtaining
155
173
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -5,9 +5,12 @@ Hoe.plugin :doofus, :git
5
5
 
6
6
  Hoe.spec "isolate" do
7
7
  developer "John Barnette", "jbarnette@rubyforge.org"
8
+ developer "Ryan Davis", "ryand-ruby@zenspider.com"
8
9
 
9
10
  self.extra_rdoc_files = Dir["*.rdoc"]
10
11
  self.history_file = "CHANGELOG.rdoc"
11
12
  self.readme_file = "README.rdoc"
12
13
  self.testlib = :minitest
14
+
15
+ extra_dev_deps << ["minitest", "~> 1.4"]
13
16
  end
@@ -0,0 +1,42 @@
1
+ require "rubygems"
2
+ require "isolate"
3
+
4
+ module Hoe # :nodoc:
5
+
6
+ # This module is a Hoe plugin. You can set its attributes in your
7
+ # Rakefile's Hoe spec, like this:
8
+ #
9
+ # Hoe.plugin :isolate
10
+ #
11
+ # Hoe.spec "myproj" do
12
+ # self.isolate_dir = "tmp/isolated"
13
+ # end
14
+ #
15
+ # NOTE! The Isolate plugin is a little bit special: It messes with
16
+ # the plugin ordering to make sure that it comes before everything
17
+ # else.
18
+
19
+ module Isolate
20
+
21
+ # Where should Isolate, um, isolate? [default: <tt>"tmp/gems"</tt>]
22
+
23
+ attr_accessor :isolate_dir
24
+
25
+ def initialize_isolate # :nodoc:
26
+ # Tee hee! Move ourselves to the front to beat out :test.
27
+ Hoe.plugins.unshift Hoe.plugins.delete(:isolate)
28
+ self.isolate_dir ||= "tmp/gems"
29
+ end
30
+
31
+ def define_isolate_tasks # :nodoc:
32
+ i = Isolate.new self.isolate_dir
33
+
34
+ # TODO: consider sneakily adding test lib deps if they don't exist
35
+ (self.extra_deps + self.extra_dev_deps).each do |name, version|
36
+ i.gem name, *Array(version)
37
+ end
38
+
39
+ i.activate
40
+ end
41
+ end
42
+ end
@@ -7,14 +7,16 @@ require "rubygems/requirement"
7
7
 
8
8
  class Isolate
9
9
 
10
- # :nodoc:
10
+ # An isolated Gem, with requirement, environment restrictions, and
11
+ # installation options. Internal use only.
12
+
11
13
  class Entry < Struct.new(:name, :requirement, :environments, :options)
12
- def matches? environment
14
+ def matches? environment # :nodoc:
13
15
  environments.empty? || environments.include?(environment)
14
16
  end
15
17
  end
16
18
 
17
- VERSION = "1.1.0" # :nodoc:
19
+ VERSION = "1.2.0" # :nodoc:
18
20
 
19
21
  attr_reader :entries # :nodoc:
20
22
 
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isolate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Barnette
8
+ - Ryan Davis
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
@@ -12,6 +13,16 @@ cert_chain: []
12
13
  date: 2009-09-22 00:00:00 -07:00
13
14
  default_executable:
14
15
  dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: minitest
18
+ type: :development
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: "1.4"
25
+ version:
15
26
  - !ruby/object:Gem::Dependency
16
27
  name: hoe
17
28
  type: :development
@@ -46,6 +57,7 @@ description: |-
46
57
  1.3.5.
47
58
  email:
48
59
  - jbarnette@rubyforge.org
60
+ - ryand-ruby@zenspider.com
49
61
  executables: []
50
62
 
51
63
  extensions: []
@@ -60,6 +72,7 @@ files:
60
72
  - Manifest.txt
61
73
  - README.rdoc
62
74
  - Rakefile
75
+ - lib/hoe/isolate.rb
63
76
  - lib/isolate.rb
64
77
  - test/fixtures/with-hoe/specifications/hoe-2.3.3.gemspec
65
78
  - test/fixtures/with-hoe/specifications/rake-0.8.7.gemspec