isolate 1.8.0 → 1.8.1

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 CHANGED
@@ -1,3 +1,7 @@
1
+ === 1.8.1 / 2010-01-13
2
+
3
+ * Allow isolate:dotgems to take an env.
4
+
1
5
  === 1.8.0 / 2010-01-05
2
6
 
3
7
  * Make build args forgive non-Array input.
data/lib/isolate/rake.rb CHANGED
@@ -1,9 +1,11 @@
1
1
  namespace :isolate do
2
2
  desc "Generate a .gems manifest for your isolated gems."
3
- task :dotgems do
3
+ task :dotgems, [:env] do |_, args|
4
+ env = args.env || Isolate.env
5
+
4
6
  File.open ".gems", "wb" do |f|
5
7
  Isolate.instance.entries.each do |entry|
6
- next unless entry.environments.empty?
8
+ next unless entry.matches? env
7
9
 
8
10
  gems = [entry.name]
9
11
  gems << "--version '#{entry.requirement}'"
data/lib/isolate.rb CHANGED
@@ -21,11 +21,15 @@ class Isolate
21
21
  end
22
22
  end
23
23
 
24
- VERSION = "1.8.0" # :nodoc:
24
+ VERSION = "1.8.1" # :nodoc:
25
25
 
26
26
  attr_reader :entries # :nodoc:
27
27
  attr_reader :path # :nodoc:
28
28
 
29
+ def self.env # :nodoc:
30
+ ENV["ISOLATE_ENV"] || ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development"
31
+ end
32
+
29
33
  # Declare an isolated RubyGems environment, installed in +path+. The
30
34
  # block given will be <tt>instance_eval</tt>ed, see Isolate#gem and
31
35
  # Isolate#environment for the sort of stuff you can do.
@@ -81,11 +85,7 @@ class Isolate
81
85
  def activate environment = nil
82
86
  enable unless enabled?
83
87
 
84
- env = (environment ||
85
- ENV["ISOLATE_ENV"] ||
86
- ENV["RAILS_ENV"] ||
87
- ENV["RACK_ENV"] ||
88
- "development").to_s
88
+ env = (environment || self.class.env).to_s
89
89
 
90
90
  install env if install?
91
91
 
data/test/test_isolate.rb CHANGED
@@ -8,6 +8,7 @@ class TestIsolate < MiniTest::Unit::TestCase
8
8
 
9
9
  def setup
10
10
  @isolate = Isolate.new "tmp/gems", :install => false, :verbose => false
11
+ @env = ENV.to_hash
11
12
  end
12
13
 
13
14
  def teardown
@@ -16,6 +17,25 @@ class TestIsolate < MiniTest::Unit::TestCase
16
17
  Gem::DependencyInstaller.reset_value
17
18
  Gem::Uninstaller.reset_value
18
19
  FileUtils.rm_rf "tmp/gems"
20
+ ENV.replace @env
21
+ end
22
+
23
+ def test_self_env
24
+ assert_equal "development", Isolate.env
25
+
26
+ ENV["RAILS_ENV"] = "foo"
27
+
28
+ assert_equal "foo", Isolate.env
29
+
30
+ ENV["RAILS_ENV"] = nil
31
+ ENV["RACK_ENV"] = "bar"
32
+
33
+ assert_equal "bar", Isolate.env
34
+
35
+ ENV["RACK_ENV"] = nil
36
+ ENV["ISOLATE_ENV"] = "baz"
37
+
38
+ assert_equal "baz", Isolate.env
19
39
  end
20
40
 
21
41
  def test_self_gems
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isolate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Barnette
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-01-05 00:00:00 -08:00
13
+ date: 2010-01-13 00:00:00 -08:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency