heirloom 0.3.1 → 0.4.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.
- data/CHANGELOG +7 -0
- data/README.md +1 -1
- data/Rakefile +6 -0
- data/lib/heirloom/archive/builder.rb +29 -29
- data/lib/heirloom/archive/destroyer.rb +27 -18
- data/lib/heirloom/archive/downloader.rb +12 -14
- data/lib/heirloom/archive/lister.rb +2 -1
- data/lib/heirloom/archive/reader.rb +22 -15
- data/lib/heirloom/archive/updater.rb +2 -1
- data/lib/heirloom/archive.rb +5 -2
- data/lib/heirloom/aws/simpledb.rb +15 -2
- data/lib/heirloom/cli/authorize.rb +12 -7
- data/lib/heirloom/cli/build.rb +29 -20
- data/lib/heirloom/cli/destroy.rb +11 -4
- data/lib/heirloom/cli/download.rb +11 -4
- data/lib/heirloom/cli/list.rb +15 -6
- data/lib/heirloom/cli/shared.rb +10 -1
- data/lib/heirloom/cli/show.rb +14 -5
- data/lib/heirloom/cli/update.rb +14 -6
- data/lib/heirloom/cli.rb +1 -2
- data/lib/heirloom/directory/directory.rb +16 -18
- data/lib/heirloom/directory/git_directory.rb +1 -1
- data/lib/heirloom/uploader/s3.rb +4 -3
- data/lib/heirloom/version.rb +1 -1
- data/spec/archive/builder_spec.rb +60 -58
- data/spec/archive/destroyer_spec.rb +9 -10
- data/spec/archive/downloader_spec.rb +2 -2
- data/spec/archive/lister_spec.rb +1 -1
- data/spec/archive/reader_spec.rb +92 -81
- data/spec/archive/updater_spec.rb +1 -1
- data/spec/archive_spec.rb +15 -6
- data/spec/aws/simpledb_spec.rb +35 -0
- data/spec/cli/authorize_spec.rb +34 -0
- data/spec/cli/build_spec.rb +57 -0
- data/spec/cli/destroy_spec.rb +33 -0
- data/spec/cli/download_spec.rb +37 -0
- data/spec/cli/list_spec.rb +34 -0
- data/spec/cli/shared_spec.rb +68 -34
- data/spec/cli/show_spec.rb +34 -0
- data/spec/cli/update_spec.rb +37 -0
- data/spec/directory/directory_spec.rb +13 -20
- data/spec/directory/git_directory_spec.rb +23 -22
- metadata +28 -14
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'heirloom/cli'
|
3
|
+
|
4
|
+
describe Heirloom do
|
5
|
+
|
6
|
+
before do
|
7
|
+
options = { :name => 'archive_name',
|
8
|
+
:id => '1.0.0',
|
9
|
+
:level => 'info',
|
10
|
+
:attribute => 'att',
|
11
|
+
:updated_value => 'val' }
|
12
|
+
@logger_stub = stub :debug => true
|
13
|
+
@config_mock = mock 'config'
|
14
|
+
@archive_mock = mock 'archive'
|
15
|
+
Trollop.stub(:options).and_return options
|
16
|
+
Heirloom::HeirloomLogger.should_receive(:new).with(:log_level => 'info').
|
17
|
+
and_return @logger_stub
|
18
|
+
Heirloom::CLI::Update.any_instance.should_receive(:load_config).
|
19
|
+
with(:logger => @logger_stub,
|
20
|
+
:opts => options).
|
21
|
+
and_return @config_mock
|
22
|
+
Heirloom::Archive.should_receive(:new).
|
23
|
+
with(:name => 'archive_name',
|
24
|
+
:id => '1.0.0',
|
25
|
+
:config => @config_mock).
|
26
|
+
and_return @archive_mock
|
27
|
+
@cli_update = Heirloom::CLI::Update.new
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should update an attribute for a given id" do
|
31
|
+
@archive_mock.should_receive(:update).
|
32
|
+
with(:attribute => 'att',
|
33
|
+
:value => 'val')
|
34
|
+
@cli_update.update
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -1,19 +1,16 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Heirloom do
|
3
|
+
describe Heirloom::Directory do
|
4
4
|
|
5
|
+
describe 'build_artifact_from_directory' do
|
5
6
|
before do
|
6
7
|
@config_mock = double 'config'
|
7
8
|
@logger_stub = stub :debug => 'true', :info => 'true', :warn => 'true'
|
8
|
-
@config_mock.
|
9
|
+
@config_mock.stub(:logger).and_return(@logger_stub)
|
9
10
|
@directory = Heirloom::Directory.new :config => @config_mock,
|
10
11
|
:exclude => ['.', '..', 'dont_pack_me'],
|
11
12
|
:path => '/target/dir'
|
12
|
-
|
13
|
-
|
14
|
-
it "should build an archive from the latest commit in path" do
|
15
|
-
file_mock = double 'file'
|
16
|
-
output_mock = double 'output mock'
|
13
|
+
output_mock = double 'output mock'
|
17
14
|
Dir.stub :tmpdir => '/tmp/dir'
|
18
15
|
Kernel.stub :rand => 0
|
19
16
|
Dir.should_receive(:entries).with('/target/dir').
|
@@ -22,23 +19,19 @@ describe Heirloom do
|
|
22
19
|
Heirloom::Directory.any_instance.should_receive(:`).
|
23
20
|
with("tar czf /tmp/dir/AAAAAAAA.tar.gz pack_me .hidden").
|
24
21
|
and_return output_mock
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should build an archive from the latest commit in path" do
|
25
25
|
$?.should_receive(:success?).and_return true
|
26
26
|
@directory.build_artifact_from_directory.should be_true
|
27
27
|
end
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
Kernel.stub :rand => 0
|
34
|
-
Dir.should_receive(:entries).with('/target/dir').
|
35
|
-
exactly(2).times.
|
36
|
-
and_return(['pack_me', '.hidden', 'dont_pack_me'])
|
37
|
-
Heirloom::Directory.any_instance.should_receive(:`).
|
38
|
-
with("tar czf /tmp/dir/AAAAAAAA.tar.gz pack_me .hidden").
|
39
|
-
and_return output_mock
|
40
|
-
$?.should_receive(:success?).and_return false
|
41
|
-
@directory.build_artifact_from_directory.should be_false
|
29
|
+
context 'when unable to create the tar' do
|
30
|
+
before { $?.stub(:success?).and_return(false) }
|
31
|
+
|
32
|
+
it { @directory.build_artifact_from_directory.should be_false }
|
42
33
|
end
|
43
34
|
|
35
|
+
end
|
36
|
+
|
44
37
|
end
|
@@ -2,31 +2,32 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Heirloom do
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
describe 'commit' do
|
6
|
+
before do
|
7
|
+
@repo_mock = double 'repo mock'
|
8
|
+
@git_directory = Heirloom::GitDirectory.new :path => '/target/dir'
|
9
|
+
Repo.should_receive(:new).with('/target/dir').and_return(@repo_mock)
|
10
|
+
end
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
end
|
12
|
+
it "should return the first commit from the given repo" do
|
13
|
+
@repo_mock.stub(:commits).and_return(['git_sha', 'other_sha'])
|
14
|
+
@git_directory.commit.should == 'git_sha'
|
15
|
+
end
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
17
|
+
it "should read commit from the given path" do
|
18
|
+
@repo_mock.should_receive(:commits).
|
19
|
+
with('sha_i_want').
|
20
|
+
and_return(['sha_i_want', 'other_sha'])
|
21
|
+
@git_directory.commit('sha_i_want').should == 'sha_i_want'
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should return false if the commit given does not exist" do
|
25
|
+
@repo_mock.should_receive(:commits).
|
26
|
+
with('sha_that_dont_exist').
|
27
|
+
and_return(nil)
|
28
|
+
@git_directory.commit('sha_that_dont_exist').should be_false
|
29
|
+
end
|
24
30
|
|
25
|
-
it "should return false if the commit given does not exist" do
|
26
|
-
@repo_mock.should_receive(:commits).with('sha_that_dont_exist').
|
27
|
-
and_return(@commits_mock)
|
28
|
-
@commits_mock.should_receive(:first).and_return nil
|
29
|
-
@git_directory.commit('sha_that_dont_exist').should be_false
|
30
31
|
end
|
31
32
|
|
32
33
|
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.
|
4
|
+
version: 0.4.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: 2012-
|
12
|
+
date: 2012-08-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70212754890460 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70212754890460
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: fog
|
27
|
-
requirement: &
|
27
|
+
requirement: &70212754889240 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70212754889240
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: grit
|
38
|
-
requirement: &
|
38
|
+
requirement: &70212754888480 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70212754888480
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: logger
|
49
|
-
requirement: &
|
49
|
+
requirement: &70212754887860 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70212754887860
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: trollop
|
60
|
-
requirement: &
|
60
|
+
requirement: &70212754886740 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70212754886740
|
69
69
|
description: I help build and manage building tar.gz files and deploying them into
|
70
70
|
the cloud
|
71
71
|
email:
|
@@ -135,7 +135,14 @@ files:
|
|
135
135
|
- spec/archive_spec.rb
|
136
136
|
- spec/aws/s3_spec.rb
|
137
137
|
- spec/aws/simpledb_spec.rb
|
138
|
+
- spec/cli/authorize_spec.rb
|
139
|
+
- spec/cli/build_spec.rb
|
140
|
+
- spec/cli/destroy_spec.rb
|
141
|
+
- spec/cli/download_spec.rb
|
142
|
+
- spec/cli/list_spec.rb
|
138
143
|
- spec/cli/shared_spec.rb
|
144
|
+
- spec/cli/show_spec.rb
|
145
|
+
- spec/cli/update_spec.rb
|
139
146
|
- spec/config_spec.rb
|
140
147
|
- spec/destroyer/s3_spec.rb
|
141
148
|
- spec/directory/directory_spec.rb
|
@@ -157,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
157
164
|
version: '0'
|
158
165
|
segments:
|
159
166
|
- 0
|
160
|
-
hash:
|
167
|
+
hash: 1382939958455203904
|
161
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
162
169
|
none: false
|
163
170
|
requirements:
|
@@ -166,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
173
|
version: '0'
|
167
174
|
segments:
|
168
175
|
- 0
|
169
|
-
hash:
|
176
|
+
hash: 1382939958455203904
|
170
177
|
requirements: []
|
171
178
|
rubyforge_project: heirloom
|
172
179
|
rubygems_version: 1.8.16
|
@@ -187,7 +194,14 @@ test_files:
|
|
187
194
|
- spec/archive_spec.rb
|
188
195
|
- spec/aws/s3_spec.rb
|
189
196
|
- spec/aws/simpledb_spec.rb
|
197
|
+
- spec/cli/authorize_spec.rb
|
198
|
+
- spec/cli/build_spec.rb
|
199
|
+
- spec/cli/destroy_spec.rb
|
200
|
+
- spec/cli/download_spec.rb
|
201
|
+
- spec/cli/list_spec.rb
|
190
202
|
- spec/cli/shared_spec.rb
|
203
|
+
- spec/cli/show_spec.rb
|
204
|
+
- spec/cli/update_spec.rb
|
191
205
|
- spec/config_spec.rb
|
192
206
|
- spec/destroyer/s3_spec.rb
|
193
207
|
- spec/directory/directory_spec.rb
|