heirloom 0.11.2 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -4,3 +4,5 @@ Gemfile.lock
4
4
  pkg/*
5
5
  .idea/
6
6
  coverage
7
+ /tmp/*
8
+ Guardfile
@@ -1,3 +1,11 @@
1
+ ## HEAD:
2
+
3
+ ## 0.12.0 (08/14/2013):
4
+
5
+ * Fixed bug 130 which did not exclude subdirectories
6
+ * Fixes bug 145 when no config file, it no longer errors out
7
+ * Added HEIRLOOM_CONFIG_FILE as alternate config file
8
+
1
9
  ## 0.11.2 (06/19/2013):
2
10
 
3
11
  * Adding hashie to runtime.
data/README.md CHANGED
@@ -40,6 +40,11 @@ default:
40
40
  # metadata_region: us-west-1
41
41
  ```
42
42
 
43
+ You can specify an alternate config file by setting "HEIRLOOM_CONFIG_FILE"
44
+ ```
45
+ export HEIRLOOM_CONFIG_FILE="~/special_config.yml"
46
+ ```
47
+
43
48
  Documentation
44
49
  -------------
45
50
 
@@ -1,5 +1,5 @@
1
1
  require "heirloom/utils"
2
-
2
+ require "heirloom/env"
3
3
  require "heirloom/acl"
4
4
  require "heirloom/archive"
5
5
  require "heirloom/aws"
@@ -25,19 +25,31 @@ module Heirloom
25
25
  private
26
26
 
27
27
  def load_config_file
28
- config_file = "#{ENV['HOME']}/.heirloom.yml"
29
-
30
28
  if File.exists? config_file
31
29
  data = YAML::load File.open(config_file)
32
30
  if data.has_key? @environment
33
- data[@environment]
31
+ return data[@environment]
34
32
  else
35
- @logger.error "Environment '#{@environment}' not found in config file."
36
- exit 1
33
+ @logger.warn "Environment '#{@environment}' not found in config file."
37
34
  end
38
- else
39
- { }
40
35
  end
36
+ {}
37
+ end
38
+
39
+ def config_file
40
+ @config_file ||= env_config_file || default_config_file
41
+ end
42
+
43
+ def env_config_file
44
+ env.load 'HEIRLOOM_CONFIG_FILE'
45
+ end
46
+
47
+ def default_config_file
48
+ "#{env.load 'HOME'}/.heirloom.yml"
49
+ end
50
+
51
+ def env
52
+ @env ||= Env.new
41
53
  end
42
54
 
43
55
  end
@@ -17,7 +17,6 @@ module Heirloom
17
17
 
18
18
  @logger.debug "Building Heirloom '#{@file}' from '#{@path}'."
19
19
  @logger.debug "Excluding #{@exclude.to_s}."
20
- @logger.debug "Adding #{files_to_pack}."
21
20
 
22
21
  return build_archive unless @secret
23
22
 
@@ -28,7 +27,7 @@ module Heirloom
28
27
 
29
28
  def build_archive
30
29
  return false unless tar_in_path?
31
- command = "cd #{@path} && tar czf #{@file} #{files_to_pack}"
30
+ command = "cd #{@path} && tar czf #{@file} #{build_exclude_files} ."
32
31
  @logger.info "Archiving with: `#{command}`"
33
32
  output = `#{command}`
34
33
  @logger.debug "Exited with status: '#{$?.exitstatus}' ouput: '#{output}'"
@@ -50,10 +49,8 @@ module Heirloom
50
49
  true
51
50
  end
52
51
 
53
- def files_to_pack
54
- @files_to_pack ||= (Dir.entries(@path) - ['.', '..'] - @exclude).map do |file|
55
- "'#{file}'"
56
- end.join(' ')
52
+ def build_exclude_files
53
+ @exclude.map { |x| "--exclude #{x}" }.join ' '
57
54
  end
58
55
 
59
56
  def cipher_file
@@ -0,0 +1,9 @@
1
+ module Heirloom
2
+ class Env
3
+
4
+ def load(var)
5
+ ENV.fetch var, nil
6
+ end
7
+
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Heirloom
2
- VERSION = "0.11.2"
2
+ VERSION = "0.12.0"
3
3
  end
@@ -18,6 +18,8 @@ describe Heirloom do
18
18
  Heirloom::Catalog.stub(:new).and_return catalog_stub
19
19
 
20
20
  @archive_mock = mock 'archive'
21
+ @logger_mock = mock_log
22
+ Heirloom::HeirloomLogger.stub :new => @logger_mock
21
23
  Heirloom::Archive.stub(:new).and_return @archive_mock
22
24
 
23
25
  end
@@ -34,9 +36,6 @@ describe Heirloom do
34
36
 
35
37
  @archive_mock.stub(:rotate).and_raise Heirloom::Exceptions::RotateFailed.new("failed")
36
38
 
37
- @logger_mock = mock 'logger'
38
- Heirloom::HeirloomLogger.stub :new => @logger_mock
39
-
40
39
  @logger_mock.should_receive(:error).with "failed"
41
40
  expect {
42
41
  Heirloom::CLI::Rotate.new.rotate
@@ -20,79 +20,104 @@ describe Heirloom do
20
20
 
21
21
  end
22
22
 
23
- it "should create a new config object from the hash passed as config" do
24
- File.stub :exists? => false
25
- File.should_receive(:open).never
26
- config = Heirloom::Config.new :opts => @opts,
27
- :logger => 'da-logger'
28
- config.access_key.should == @opts[:aws_access_key]
29
- config.secret_key.should == @opts[:aws_secret_key]
30
- config.metadata_region.should == @opts[:metadata_region]
31
- config.logger.should == 'da-logger'
32
- end
23
+ context "#test the config file" do
24
+ it "should open the HEIRLOOM_CONFIG_FILE if set" do
25
+ File.stub :exists? => true
26
+ File.should_receive(:open).with('~/.special_config.yml').and_return(@config_file.to_yaml)
27
+ env_mock = mock 'env'
28
+ env_mock.should_receive(:load).with('HEIRLOOM_CONFIG_FILE').and_return('~/.special_config.yml')
29
+ Heirloom::Env.stub(:new).and_return(env_mock)
30
+ config = Heirloom::Config.new :opts => @opts,
31
+ :logger => 'da-logger'
32
+ end
33
33
 
34
- it "should create a new config object and read from ~/.heirloom.yml" do
35
- File.stub :exists? => true
36
- File.should_receive(:open).with("#{ENV['HOME']}/.heirloom.yml").
37
- and_return(@config_file.to_yaml)
38
- config = Heirloom::Config.new
39
- config.access_key.should == @config_file['default']['access_key']
40
- config.secret_key.should == @config_file['default']['secret_key']
41
- config.metadata_region.should == @config_file['default']['metadata_region']
42
- end
43
-
44
- it "should override config settings in file from opts" do
45
- File.stub :exists? => true
46
- File.should_receive(:open).with("#{ENV['HOME']}/.heirloom.yml").
47
- and_return(@config_file.to_yaml)
48
- config = Heirloom::Config.new :opts => @opts
49
- config.access_key.should == @opts[:aws_access_key]
50
- config.secret_key.should == @opts[:aws_secret_key]
51
- config.metadata_region.should == @opts[:metadata_region]
34
+ it "should open the default config file if HEIRLOOM_CONFIG_FILE is not set" do
35
+ File.stub :exists? => true
36
+ File.should_receive(:open).with('~/.heirloom.yml').and_return(@config_file.to_yaml)
37
+ env_mock = mock 'env'
38
+ env_mock.should_receive(:load).with('HEIRLOOM_CONFIG_FILE').and_return(nil)
39
+ env_mock.should_receive(:load).with('HOME').and_return('~')
40
+ Heirloom::Env.stub(:new).and_return(env_mock)
41
+ config = Heirloom::Config.new :opts => @opts,
42
+ :logger => 'da-logger'
43
+ end
52
44
  end
53
45
 
54
- it "should load a blank config if the file does not exist and no config passed" do
55
- File.stub :exists? => false
56
- config = Heirloom::Config.new
57
- config.access_key.should be_nil
58
- config.secret_key.should be_nil
59
- config.metadata_region.should be_nil
60
- end
46
+ context "#with config file set" do
47
+ before do
48
+ env_mock = mock 'env'
49
+ env_mock.should_receive(:load).with('HEIRLOOM_CONFIG_FILE').and_return(nil)
50
+ env_mock.should_receive(:load).with('HOME').and_return('~')
51
+ Heirloom::Env.stub(:new).and_return(env_mock)
52
+ end
61
53
 
62
- it "should load a different environment if requested" do
63
- File.stub :exists? => true
64
- File.should_receive(:open).with("#{ENV['HOME']}/.heirloom.yml").
65
- and_return(@config_file.to_yaml)
66
- config = Heirloom::Config.new :environment => 'dev'
67
- config.access_key.should == @config_file['dev']['access_key']
68
- config.secret_key.should == @config_file['dev']['secret_key']
69
- config.metadata_region.should == @config_file['dev']['metadata_region']
70
- end
54
+ it "should create a new config object from the hash passed as config" do
55
+ File.stub :exists? => false
56
+ File.should_receive(:open).never
57
+ config = Heirloom::Config.new :opts => @opts,
58
+ :logger => 'da-logger'
59
+ config.access_key.should == @opts[:aws_access_key]
60
+ config.secret_key.should == @opts[:aws_secret_key]
61
+ config.metadata_region.should == @opts[:metadata_region]
62
+ config.logger.should == 'da-logger'
63
+ end
71
64
 
72
- it "should still allow overrides with different environments" do
73
- File.stub :exists? => true
74
- File.should_receive(:open).with("#{ENV['HOME']}/.heirloom.yml").
75
- and_return(@config_file.to_yaml)
76
- opts = {
77
- :aws_access_key => 'specialdevkey'
78
- }
65
+ it "should create a new config object and read from ~/.heirloom.yml" do
66
+ File.stub :exists? => true
67
+ File.should_receive(:open).with("~/.heirloom.yml").and_return(@config_file.to_yaml)
68
+ config = Heirloom::Config.new
69
+ config.access_key.should == @config_file['default']['access_key']
70
+ config.secret_key.should == @config_file['default']['secret_key']
71
+ config.metadata_region.should == @config_file['default']['metadata_region']
72
+ end
73
+
74
+ it "should override config settings in file from opts" do
75
+ File.stub :exists? => true
76
+ File.should_receive(:open).with("~/.heirloom.yml").and_return(@config_file.to_yaml)
77
+ config = Heirloom::Config.new :opts => @opts
78
+ config.access_key.should == @opts[:aws_access_key]
79
+ config.secret_key.should == @opts[:aws_secret_key]
80
+ config.metadata_region.should == @opts[:metadata_region]
81
+ end
79
82
 
80
- config = Heirloom::Config.new :opts => opts, :environment => 'dev'
81
- config.access_key.should == 'specialdevkey'
82
- config.metadata_region.should == @config_file['dev']['metadata_region']
83
- end
83
+ it "should load a blank config if the file does not exist and no config passed" do
84
+ File.stub :exists? => false
85
+ config = Heirloom::Config.new
86
+ config.access_key.should be_nil
87
+ config.secret_key.should be_nil
88
+ config.metadata_region.should be_nil
89
+ end
84
90
 
85
- it "should complain if a non-existing environment is requested" do
86
- File.stub :exists? => true
87
- File.should_receive(:open).with("#{ENV['HOME']}/.heirloom.yml").
88
- and_return(@config_file.to_yaml)
91
+ it "should load a different environment if requested" do
92
+ File.stub :exists? => true
93
+ File.should_receive(:open).with("~/.heirloom.yml").and_return(@config_file.to_yaml)
94
+ config = Heirloom::Config.new :environment => 'dev'
95
+ config.access_key.should == @config_file['dev']['access_key']
96
+ config.secret_key.should == @config_file['dev']['secret_key']
97
+ config.metadata_region.should == @config_file['dev']['metadata_region']
98
+ end
89
99
 
90
- logger_mock = mock 'logger'
91
- logger_mock.should_receive(:error)
100
+ it "should still allow overrides with different environments" do
101
+ File.stub :exists? => true
102
+ File.should_receive(:open).with("~/.heirloom.yml").and_return(@config_file.to_yaml)
103
+ opts = {
104
+ :aws_access_key => 'specialdevkey'
105
+ }
92
106
 
93
- lambda {
94
- config = Heirloom::Config.new :environment => 'missing', :logger => logger_mock
95
- }.should raise_error SystemExit
96
- end
107
+ config = Heirloom::Config.new :opts => opts, :environment => 'dev'
108
+ config.access_key.should == 'specialdevkey'
109
+ config.metadata_region.should == @config_file['dev']['metadata_region']
110
+ end
97
111
 
112
+ it "should log a warning if a non-existing environment is requested from existing config file" do
113
+ File.stub :exists? => true
114
+ File.should_receive(:open).with("~/.heirloom.yml").and_return(@config_file.to_yaml)
115
+ logger_mock = mock 'logger'
116
+ logger_mock.should_receive(:warn)
117
+
118
+ lambda {
119
+ config = Heirloom::Config.new :environment => 'missing', :logger => logger_mock
120
+ }.should_not raise_error SystemExit
121
+ end
122
+ end
98
123
  end
@@ -11,7 +11,7 @@ describe Heirloom::Directory do
11
11
  :error => 'true'
12
12
  @config_mock.stub(:logger).and_return(@logger_stub)
13
13
  @directory = Heirloom::Directory.new :config => @config_mock,
14
- :exclude => ['.', '..', 'dont_pack_me'],
14
+ :exclude => ['dont_pack_me', 'dont_pack_me1'],
15
15
  :path => '/dir',
16
16
  :file => '/tmp/file.tar.gz'
17
17
  end
@@ -20,13 +20,11 @@ describe Heirloom::Directory do
20
20
  before do
21
21
  @directory.should_receive(:which).with('tar').and_return true
22
22
  output_mock = double 'output mock'
23
- command = "cd /dir && tar czf /tmp/file.tar.gz 'pack_me' '.hidden' 'with a space'"
24
- files = ['pack_me', '.hidden', 'with a space', 'dont_pack_me']
23
+ command = "cd /dir && tar czf /tmp/file.tar.gz --exclude dont_pack_me --exclude dont_pack_me1 ."
24
+ files = ['pack_me', '.hidden', 'with a space', 'dont_pack_me', 'dont_pack_me1']
25
25
  Heirloom::Directory.any_instance.should_receive(:`).
26
26
  with(command).
27
27
  and_return output_mock
28
- Dir.should_receive(:entries).with('/dir').
29
- and_return files
30
28
  $?.stub :success? => true
31
29
  end
32
30
 
@@ -60,12 +58,11 @@ describe Heirloom::Directory do
60
58
  before do
61
59
  @directory.should_receive(:which).with('tar').and_return true
62
60
  output_mock = double 'output mock'
63
- command = "cd /dir && tar czf /tmp/file.tar.gz 'pack_me' '.hidden' 'with a space'"
64
- files = ['pack_me', '.hidden', 'with a space', 'dont_pack_me']
61
+ command = "cd /dir && tar czf /tmp/file.tar.gz --exclude dont_pack_me --exclude dont_pack_me1 ."
62
+ files = ['pack_me', '.hidden', 'with a space', 'dont_pack_me', 'dont_pack_me1']
65
63
  Heirloom::Directory.any_instance.should_receive(:`).
66
64
  with(command).
67
65
  and_return output_mock
68
- Dir.should_receive(:entries).with('/dir').and_return files
69
66
  $?.stub(:success?).and_return(false)
70
67
  end
71
68
 
@@ -81,8 +78,7 @@ describe Heirloom::Directory do
81
78
 
82
79
  context 'when required executable is missing' do
83
80
  before do
84
- files = ['pack_me', '.hidden', 'with a space', 'dont_pack_me']
85
- Dir.should_receive(:entries).with('/dir').and_return files
81
+ files = ['pack_me', '.hidden', 'with a space', 'dont_pack_me', 'dont_pack_me1']
86
82
  end
87
83
 
88
84
  it "should return false if tar is not in path" do
@@ -92,10 +88,6 @@ describe Heirloom::Directory do
92
88
  end
93
89
 
94
90
  context "parameter validation" do
95
- before do
96
- Dir.stub(:entries).and_return ['pack_me', 'dont_pack_me']
97
- end
98
-
99
91
  it "should not fail if exclude is nil" do
100
92
  @directory = Heirloom::Directory.new :config => @config_mock,
101
93
  :exclude => nil,
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Heirloom do
4
+
5
+ it "should return ENV value if passed the name" do
6
+ set_env_var("HOME", "~")
7
+ env = Heirloom::Env.new
8
+ expect(env.load 'HOME').to eq '~'
9
+ end
10
+
11
+ it "should return nil if the ENV name does not exist" do
12
+ env = Heirloom::Env.new
13
+ expect(env.load 'SOME_RANDOM_MISSING_VALUE').to eq nil
14
+ end
15
+
16
+ end
@@ -16,6 +16,10 @@ RUN_INTEGRATION_TESTS = HEIRLOOM_INT_BP && !HEIRLOOM_INT_BP.empty?
16
16
 
17
17
  module SpecHelpers
18
18
 
19
+ def set_env_var(name,value)
20
+ ENV.stub(:fetch).with(name, nil).and_return(value)
21
+ end
22
+
19
23
  def mock_log
20
24
  mock 'log', :debug => true, :info => true, :warn => true, :error => true, :level= => true
21
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heirloom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.2
4
+ version: 0.12.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-19 00:00:00.000000000 Z
12
+ date: 2013-08-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70204272959080 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70204272959080
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: rspec
27
- requirement: &70204272957220 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 2.11.0
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70204272957220
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.11.0
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: simplecov
38
- requirement: &70204272955560 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,21 +53,31 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70204272955560
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: vcr
49
- requirement: &70204272954540 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
- - - =
67
+ - - '='
53
68
  - !ruby/object:Gem::Version
54
69
  version: 2.4.0
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70204272954540
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - '='
76
+ - !ruby/object:Gem::Version
77
+ version: 2.4.0
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: watchr
60
- requirement: &70204272952980 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,54 +85,79 @@ dependencies:
65
85
  version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *70204272952980
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: excon
71
- requirement: &70204273119180 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
- - - =
99
+ - - '='
75
100
  - !ruby/object:Gem::Version
76
101
  version: '0.16'
77
102
  type: :runtime
78
103
  prerelease: false
79
- version_requirements: *70204273119180
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - '='
108
+ - !ruby/object:Gem::Version
109
+ version: '0.16'
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: fog
82
- requirement: &70204273118060 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
- - - =
115
+ - - '='
86
116
  - !ruby/object:Gem::Version
87
117
  version: 1.10.0
88
118
  type: :runtime
89
119
  prerelease: false
90
- version_requirements: *70204273118060
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - '='
124
+ - !ruby/object:Gem::Version
125
+ version: 1.10.0
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: hashie
93
- requirement: &70204273116860 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
- - - =
131
+ - - '='
97
132
  - !ruby/object:Gem::Version
98
133
  version: 2.0.5
99
134
  type: :runtime
100
135
  prerelease: false
101
- version_requirements: *70204273116860
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - '='
140
+ - !ruby/object:Gem::Version
141
+ version: 2.0.5
102
142
  - !ruby/object:Gem::Dependency
103
143
  name: trollop
104
- requirement: &70204273112960 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
105
145
  none: false
106
146
  requirements:
107
- - - =
147
+ - - '='
108
148
  - !ruby/object:Gem::Version
109
149
  version: '2.0'
110
150
  type: :runtime
111
151
  prerelease: false
112
- version_requirements: *70204273112960
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - '='
156
+ - !ruby/object:Gem::Version
157
+ version: '2.0'
113
158
  - !ruby/object:Gem::Dependency
114
159
  name: xml-simple
115
- requirement: &70204273112240 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
116
161
  none: false
117
162
  requirements:
118
163
  - - ~>
@@ -120,7 +165,12 @@ dependencies:
120
165
  version: 1.1.2
121
166
  type: :runtime
122
167
  prerelease: false
123
- version_requirements: *70204273112240
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: 1.1.2
124
174
  description: I help build and manage building tar.gz files and deploying them into
125
175
  the cloud
126
176
  email:
@@ -196,6 +246,7 @@ files:
196
246
  - lib/heirloom/directory/directory.rb
197
247
  - lib/heirloom/downloader.rb
198
248
  - lib/heirloom/downloader/s3.rb
249
+ - lib/heirloom/env.rb
199
250
  - lib/heirloom/exceptions.rb
200
251
  - lib/heirloom/logger.rb
201
252
  - lib/heirloom/uploader.rb
@@ -249,6 +300,7 @@ files:
249
300
  - spec/destroyer/s3_spec.rb
250
301
  - spec/directory/directory_spec.rb
251
302
  - spec/downloader/s3_spec.rb
303
+ - spec/env_spec.rb
252
304
  - spec/fixtures/cassettes/Heirloom_AWS_SimpleDB/select/should_be_able_to_offset_results.yml
253
305
  - spec/fixtures/cassettes/Heirloom_AWS_SimpleDB/select/should_get_results.yml
254
306
  - spec/fixtures/cassettes/Heirloom_AWS_SimpleDB/select/should_yield_when_requested.yml
@@ -274,21 +326,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
274
326
  - - ! '>='
275
327
  - !ruby/object:Gem::Version
276
328
  version: '0'
277
- segments:
278
- - 0
279
- hash: -2840410231775603378
280
329
  required_rubygems_version: !ruby/object:Gem::Requirement
281
330
  none: false
282
331
  requirements:
283
332
  - - ! '>='
284
333
  - !ruby/object:Gem::Version
285
334
  version: '0'
286
- segments:
287
- - 0
288
- hash: -2840410231775603378
289
335
  requirements: []
290
336
  rubyforge_project: heirloom
291
- rubygems_version: 1.8.16
337
+ rubygems_version: 1.8.24
292
338
  signing_key:
293
339
  specification_version: 3
294
340
  summary: I help with deploying code into the cloud
@@ -338,6 +384,7 @@ test_files:
338
384
  - spec/destroyer/s3_spec.rb
339
385
  - spec/directory/directory_spec.rb
340
386
  - spec/downloader/s3_spec.rb
387
+ - spec/env_spec.rb
341
388
  - spec/fixtures/cassettes/Heirloom_AWS_SimpleDB/select/should_be_able_to_offset_results.yml
342
389
  - spec/fixtures/cassettes/Heirloom_AWS_SimpleDB/select/should_get_results.yml
343
390
  - spec/fixtures/cassettes/Heirloom_AWS_SimpleDB/select/should_yield_when_requested.yml