heirloom 0.1.4 → 0.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.
Files changed (51) hide show
  1. data/CHANGELOG +7 -0
  2. data/README.md +4 -6
  3. data/heirloom.gemspec +2 -2
  4. data/lib/heirloom.rb +1 -1
  5. data/lib/heirloom/archive.rb +121 -0
  6. data/lib/heirloom/{artifact/artifact_authorizer.rb → archive/authorizer.rb} +6 -6
  7. data/lib/heirloom/{artifact/artifact_builder.rb → archive/builder.rb} +1 -6
  8. data/lib/heirloom/archive/destroyer.rb +50 -0
  9. data/lib/heirloom/{artifact/artifact_downloader.rb → archive/downloader.rb} +7 -7
  10. data/lib/heirloom/{artifact/artifact_lister.rb → archive/lister.rb} +1 -7
  11. data/lib/heirloom/archive/reader.rb +74 -0
  12. data/lib/heirloom/{artifact/artifact_updater.rb → archive/updater.rb} +4 -4
  13. data/lib/heirloom/{artifact/artifact_uploader.rb → archive/uploader.rb} +8 -5
  14. data/lib/heirloom/archive/verifier.rb +34 -0
  15. data/lib/heirloom/aws/simpledb.rb +5 -1
  16. data/lib/heirloom/cli.rb +8 -62
  17. data/lib/heirloom/cli/build.rb +53 -25
  18. data/lib/heirloom/cli/destroy.rb +30 -8
  19. data/lib/heirloom/cli/download.rb +32 -11
  20. data/lib/heirloom/cli/list.rb +30 -6
  21. data/lib/heirloom/cli/show.rb +33 -11
  22. data/lib/heirloom/cli/update.rb +31 -11
  23. data/lib/heirloom/config.rb +3 -3
  24. data/lib/heirloom/destroyer/s3.rb +1 -1
  25. data/lib/heirloom/directory/directory.rb +1 -1
  26. data/lib/heirloom/downloader/s3.rb +1 -1
  27. data/lib/heirloom/logger.rb +23 -0
  28. data/lib/heirloom/uploader/s3.rb +6 -11
  29. data/lib/heirloom/version.rb +1 -1
  30. data/spec/acl/s3_spec.rb +2 -10
  31. data/spec/config_spec.rb +15 -4
  32. data/spec/directory/directory_spec.rb +1 -1
  33. data/spec/{artifact/artifact_authorizer_spec.rb → heirloom/authorizer_spec.rb} +7 -7
  34. data/spec/{artifact/artifact_builder_spec.rb → heirloom/builder_spec.rb} +3 -3
  35. data/spec/{artifact/artifact_destroyer_spec.rb → heirloom/destroyer_spec.rb} +7 -7
  36. data/spec/{artifact/artifact_downloader_spec.rb → heirloom/downloader_spec.rb} +17 -17
  37. data/spec/{artifact/artifact_lister_spec.rb → heirloom/lister_spec.rb} +3 -3
  38. data/spec/heirloom/reader_spec.rb +90 -0
  39. data/spec/heirloom/updater_spec.rb +16 -0
  40. data/spec/heirloom/uploader_spec.rb +16 -0
  41. data/spec/heirloom/verifier_spec.rb +38 -0
  42. data/spec/heirloom_spec.rb +74 -0
  43. data/spec/logger_spec.rb +9 -0
  44. metadata +49 -45
  45. data/lib/heirloom/artifact.rb +0 -111
  46. data/lib/heirloom/artifact/artifact_destroyer.rb +0 -49
  47. data/lib/heirloom/artifact/artifact_reader.rb +0 -44
  48. data/spec/artifact/artifact_reader_spec.rb +0 -55
  49. data/spec/artifact/artifact_updater_spec.rb +0 -16
  50. data/spec/artifact/artifact_uploader_spec.rb +0 -16
  51. data/spec/artifact_spec.rb +0 -74
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Heirloom do
4
+
5
+ before do
6
+ @config_mock = double 'config'
7
+ @logger_mock = double 'logger'
8
+ @config_mock.should_receive(:logger).and_return(@logger_mock)
9
+ @reader = Heirloom::Updater.new :config => @config_mock,
10
+ :name => 'tim',
11
+ :id => '123'
12
+ end
13
+
14
+ it "should test the archive updater methods"
15
+
16
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Heirloom do
4
+
5
+ before do
6
+ @config_mock = double 'config'
7
+ @logger_mock = double 'logger'
8
+ @config_mock.should_receive(:logger).and_return(@logger_mock)
9
+ @reader = Heirloom::Uploader.new :config => @config_mock,
10
+ :name => 'tim',
11
+ :id => '123'
12
+ end
13
+
14
+ it "should test the archive uploader methods"
15
+
16
+ end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ describe Heirloom do
4
+
5
+ before do
6
+ @config_mock = double 'config'
7
+ @logger_mock = double 'logger'
8
+ @s3_mock = double 's3_mock'
9
+ @config_mock.should_receive(:logger).and_return(@logger_mock)
10
+ @verifier = Heirloom::Verifier.new :config => @config_mock,
11
+ :name => 'heirloom-name'
12
+ end
13
+
14
+ it "should return false if a bucket does not exist" do
15
+ @config_mock.should_receive(:regions).and_return ['us-west-1']
16
+ Heirloom::AWS::S3.should_receive(:new).
17
+ with(:config => @config_mock,
18
+ :region => 'us-west-1').
19
+ and_return @s3_mock
20
+ @s3_mock.should_receive(:get_bucket).with('bucket123-us-west-1').
21
+ and_return nil
22
+ @logger_mock.should_receive(:debug)
23
+ @verifier.buckets_exist?(:bucket_prefix => 'bucket123').should == false
24
+ end
25
+
26
+ it "should true if all buckets exist" do
27
+ @config_mock.should_receive(:regions).and_return ['us-west-2']
28
+ Heirloom::AWS::S3.should_receive(:new).
29
+ with(:config => @config_mock,
30
+ :region => 'us-west-2').
31
+ and_return @s3_mock
32
+ @s3_mock.should_receive(:get_bucket).with('bucket123-us-west-2').
33
+ and_return 'an s3 bucket'
34
+ @logger_mock.should_receive(:debug)
35
+ @verifier.buckets_exist?(:bucket_prefix => 'bucket123').should == true
36
+ end
37
+
38
+ end
@@ -0,0 +1,74 @@
1
+ require 'spec_helper'
2
+
3
+ describe Heirloom do
4
+
5
+ before do
6
+ Heirloom::Config.should_receive(:new).and_return('config')
7
+ @heirloom = Heirloom::Archive.new :logger => 'logger',
8
+ :name => 'tim',
9
+ :id => '123'
10
+ end
11
+
12
+
13
+ context "test public methods" do
14
+ before do
15
+ @mock = double('Mock')
16
+ end
17
+
18
+ it "should call build method with given args" do
19
+ @heirloom.should_receive(:builder).and_return(@mock)
20
+ @mock.should_receive(:build).with('args')
21
+ @heirloom.build('args')
22
+ end
23
+
24
+ it "should call download method with given args" do
25
+ @heirloom.should_receive(:downloader).and_return(@mock)
26
+ @mock.should_receive(:download).with('args')
27
+ @heirloom.download('args')
28
+ end
29
+
30
+ it "should call update heirloom method with given args" do
31
+ @heirloom.should_receive(:updater).and_return(@mock)
32
+ @mock.should_receive(:update).with('args')
33
+ @heirloom.update('args')
34
+ end
35
+
36
+ it "should call upload heirloom method with given args" do
37
+ @heirloom.should_receive(:uploader).and_return(@mock)
38
+ @mock.should_receive(:upload).with('args')
39
+ @heirloom.upload('args')
40
+ end
41
+
42
+ it "should call authorize method" do
43
+ @heirloom.should_receive(:authorizer).and_return(@mock)
44
+ @mock.should_receive(:authorize)
45
+ @heirloom.authorize
46
+ end
47
+
48
+ it "should call heirloom exists method" do
49
+ @heirloom.should_receive(:reader).and_return(@mock)
50
+ @mock.should_receive(:exists?)
51
+ @heirloom.exists?
52
+ end
53
+
54
+ it "should call show method" do
55
+ @heirloom.should_receive(:reader).and_return(@mock)
56
+ @mock.should_receive(:show)
57
+ @heirloom.show
58
+ end
59
+
60
+ it "should call list method" do
61
+ @heirloom.should_receive(:lister).and_return(@mock)
62
+ @mock.should_receive(:list)
63
+ @heirloom.list
64
+ end
65
+
66
+ it "should call cleanup method" do
67
+ @heirloom.should_receive(:builder).and_return(@mock)
68
+ @mock.should_receive(:cleanup)
69
+ @heirloom.cleanup
70
+ end
71
+
72
+ end
73
+
74
+ end
@@ -5,6 +5,7 @@ describe Heirloom do
5
5
  it "should create a new logger object from the hash passed as :logger" do
6
6
  logger_mock = mock 'logger'
7
7
  logger_mock.should_receive(:info).with 'a message'
8
+ logger_mock.should_receive(:level=).with Logger::INFO
8
9
  logger = Heirloom::HeirloomLogger.new :logger => logger_mock
9
10
  logger.info 'a message'
10
11
  end
@@ -13,8 +14,16 @@ describe Heirloom do
13
14
  logger_mock = mock 'logger'
14
15
  Logger.should_receive(:new).with(STDOUT).and_return logger_mock
15
16
  logger_mock.should_receive(:info).with 'a message'
17
+ logger_mock.should_receive(:level=).with Logger::INFO
16
18
  logger = Heirloom::HeirloomLogger.new
17
19
  logger.info 'a message'
18
20
  end
19
21
 
22
+ it "should set the log level to debug when passed in as log_level" do
23
+ logger_mock = mock 'logger'
24
+ Logger.should_receive(:new).with(STDOUT).and_return logger_mock
25
+ logger_mock.should_receive(:level=).with Logger::DEBUG
26
+ logger = Heirloom::HeirloomLogger.new :log_level => 'debug'
27
+ end
28
+
20
29
  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.1.4
4
+ version: 0.2.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-07-10 00:00:00.000000000 Z
12
+ date: 2012-07-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70283746732980 !ruby/object:Gem::Requirement
16
+ requirement: &70152737644500 !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: *70283746732980
24
+ version_requirements: *70152737644500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: fog
27
- requirement: &70283746730600 !ruby/object:Gem::Requirement
27
+ requirement: &70152737643400 !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: *70283746730600
35
+ version_requirements: *70152737643400
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: grit
38
- requirement: &70283746729140 !ruby/object:Gem::Requirement
38
+ requirement: &70152737657440 !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: *70283746729140
46
+ version_requirements: *70152737657440
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: logger
49
- requirement: &70283746743980 !ruby/object:Gem::Requirement
49
+ requirement: &70152737654800 !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: *70283746743980
57
+ version_requirements: *70152737654800
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: minitar
60
- requirement: &70283746741560 !ruby/object:Gem::Requirement
60
+ requirement: &70152737651940 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70283746741560
68
+ version_requirements: *70152737651940
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: trollop
71
- requirement: &70283746739720 !ruby/object:Gem::Requirement
71
+ requirement: &70152737666040 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,8 +76,9 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70283746739720
80
- description: I help build and manage artifacts
79
+ version_requirements: *70152737666040
80
+ description: I help build and manage building tar.gz files and deploying them into
81
+ the cloud
81
82
  email:
82
83
  - brett@weav.net
83
84
  executables:
@@ -97,15 +98,16 @@ files:
97
98
  - lib/heirloom.rb
98
99
  - lib/heirloom/acl.rb
99
100
  - lib/heirloom/acl/s3.rb
100
- - lib/heirloom/artifact.rb
101
- - lib/heirloom/artifact/artifact_authorizer.rb
102
- - lib/heirloom/artifact/artifact_builder.rb
103
- - lib/heirloom/artifact/artifact_destroyer.rb
104
- - lib/heirloom/artifact/artifact_downloader.rb
105
- - lib/heirloom/artifact/artifact_lister.rb
106
- - lib/heirloom/artifact/artifact_reader.rb
107
- - lib/heirloom/artifact/artifact_updater.rb
108
- - lib/heirloom/artifact/artifact_uploader.rb
101
+ - lib/heirloom/archive.rb
102
+ - lib/heirloom/archive/authorizer.rb
103
+ - lib/heirloom/archive/builder.rb
104
+ - lib/heirloom/archive/destroyer.rb
105
+ - lib/heirloom/archive/downloader.rb
106
+ - lib/heirloom/archive/lister.rb
107
+ - lib/heirloom/archive/reader.rb
108
+ - lib/heirloom/archive/updater.rb
109
+ - lib/heirloom/archive/uploader.rb
110
+ - lib/heirloom/archive/verifier.rb
109
111
  - lib/heirloom/aws.rb
110
112
  - lib/heirloom/aws/s3.rb
111
113
  - lib/heirloom/aws/simpledb.rb
@@ -130,15 +132,6 @@ files:
130
132
  - lib/heirloom/version.rb
131
133
  - script/ci_setup
132
134
  - spec/acl/s3_spec.rb
133
- - spec/artifact/artifact_authorizer_spec.rb
134
- - spec/artifact/artifact_builder_spec.rb
135
- - spec/artifact/artifact_destroyer_spec.rb
136
- - spec/artifact/artifact_downloader_spec.rb
137
- - spec/artifact/artifact_lister_spec.rb
138
- - spec/artifact/artifact_reader_spec.rb
139
- - spec/artifact/artifact_updater_spec.rb
140
- - spec/artifact/artifact_uploader_spec.rb
141
- - spec/artifact_spec.rb
142
135
  - spec/aws/s3_spec.rb
143
136
  - spec/aws/simpledb_spec.rb
144
137
  - spec/config_spec.rb
@@ -146,6 +139,16 @@ files:
146
139
  - spec/directory/directory_spec.rb
147
140
  - spec/directory/git_directory_spec.rb
148
141
  - spec/downloader/s3_spec.rb
142
+ - spec/heirloom/authorizer_spec.rb
143
+ - spec/heirloom/builder_spec.rb
144
+ - spec/heirloom/destroyer_spec.rb
145
+ - spec/heirloom/downloader_spec.rb
146
+ - spec/heirloom/lister_spec.rb
147
+ - spec/heirloom/reader_spec.rb
148
+ - spec/heirloom/updater_spec.rb
149
+ - spec/heirloom/uploader_spec.rb
150
+ - spec/heirloom/verifier_spec.rb
151
+ - spec/heirloom_spec.rb
149
152
  - spec/logger_spec.rb
150
153
  - spec/spec_helper.rb
151
154
  homepage: ''
@@ -162,7 +165,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
162
165
  version: '0'
163
166
  segments:
164
167
  - 0
165
- hash: -1600132010166010872
168
+ hash: 2218051288322910577
166
169
  required_rubygems_version: !ruby/object:Gem::Requirement
167
170
  none: false
168
171
  requirements:
@@ -171,24 +174,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
174
  version: '0'
172
175
  segments:
173
176
  - 0
174
- hash: -1600132010166010872
177
+ hash: 2218051288322910577
175
178
  requirements: []
176
179
  rubyforge_project: heirloom
177
180
  rubygems_version: 1.8.16
178
181
  signing_key:
179
182
  specification_version: 3
180
- summary: I help with artifacts
183
+ summary: I help with deploying code into the cloud
181
184
  test_files:
182
185
  - spec/acl/s3_spec.rb
183
- - spec/artifact/artifact_authorizer_spec.rb
184
- - spec/artifact/artifact_builder_spec.rb
185
- - spec/artifact/artifact_destroyer_spec.rb
186
- - spec/artifact/artifact_downloader_spec.rb
187
- - spec/artifact/artifact_lister_spec.rb
188
- - spec/artifact/artifact_reader_spec.rb
189
- - spec/artifact/artifact_updater_spec.rb
190
- - spec/artifact/artifact_uploader_spec.rb
191
- - spec/artifact_spec.rb
192
186
  - spec/aws/s3_spec.rb
193
187
  - spec/aws/simpledb_spec.rb
194
188
  - spec/config_spec.rb
@@ -196,5 +190,15 @@ test_files:
196
190
  - spec/directory/directory_spec.rb
197
191
  - spec/directory/git_directory_spec.rb
198
192
  - spec/downloader/s3_spec.rb
193
+ - spec/heirloom/authorizer_spec.rb
194
+ - spec/heirloom/builder_spec.rb
195
+ - spec/heirloom/destroyer_spec.rb
196
+ - spec/heirloom/downloader_spec.rb
197
+ - spec/heirloom/lister_spec.rb
198
+ - spec/heirloom/reader_spec.rb
199
+ - spec/heirloom/updater_spec.rb
200
+ - spec/heirloom/uploader_spec.rb
201
+ - spec/heirloom/verifier_spec.rb
202
+ - spec/heirloom_spec.rb
199
203
  - spec/logger_spec.rb
200
204
  - spec/spec_helper.rb
@@ -1,111 +0,0 @@
1
- require 'heirloom/artifact/artifact_lister.rb'
2
- require 'heirloom/artifact/artifact_reader.rb'
3
- require 'heirloom/artifact/artifact_builder.rb'
4
- require 'heirloom/artifact/artifact_updater.rb'
5
- require 'heirloom/artifact/artifact_uploader.rb'
6
- require 'heirloom/artifact/artifact_downloader.rb'
7
- require 'heirloom/artifact/artifact_authorizer.rb'
8
- require 'heirloom/artifact/artifact_destroyer.rb'
9
-
10
- module Heirloom
11
-
12
- class Artifact
13
-
14
- def initialize(args)
15
- @config = Config.new :config => args[:config],
16
- :logger => args[:logger]
17
- @name = args[:name]
18
- @id = args[:id]
19
- end
20
-
21
- def authorize
22
- artifact_authorizer.authorize
23
- end
24
-
25
- def build(args)
26
- artifact_builder.build args
27
- end
28
-
29
- def download(args)
30
- artifact_downloader.download args
31
- end
32
-
33
- def update(args)
34
- artifact_updater.update args
35
- end
36
-
37
- def upload(args)
38
- artifact_uploader.upload args
39
- end
40
-
41
- def exists?
42
- artifact_reader.exists?
43
- end
44
-
45
- def destroy
46
- artifact_destroyer.destroy
47
- end
48
-
49
- def show
50
- artifact_reader.show
51
- end
52
-
53
- def list(limit=10)
54
- artifact_lister.list(limit)
55
- end
56
-
57
- def cleanup
58
- artifact_builder.cleanup
59
- end
60
-
61
- private
62
-
63
- def artifact_lister
64
- @artifact_lister ||= ArtifactLister.new :config => @config,
65
- :name => @name
66
- end
67
-
68
- def artifact_reader
69
- @artifact_reader ||= ArtifactReader.new :config => @config,
70
- :name => @name,
71
- :id => @id
72
- end
73
-
74
- def artifact_builder
75
- @artifact_builder ||= ArtifactBuilder.new :config => @config,
76
- :name => @name,
77
- :id => @id
78
- end
79
-
80
- def artifact_updater
81
- @artifact_updater ||= ArtifactUpdater.new :config => @config,
82
- :name => @name,
83
- :id => @id
84
- end
85
-
86
- def artifact_uploader
87
- @artifact_uploader ||= ArtifactUploader.new :config => @config,
88
- :name => @name,
89
- :id => @id
90
- end
91
-
92
- def artifact_downloader
93
- @artifact_downloader ||= ArtifactDownloader.new :config => @config,
94
- :name => @name,
95
- :id => @id
96
- end
97
-
98
- def artifact_authorizer
99
- @artifact_authorizer ||= ArtifactAuthorizer.new :config => @config,
100
- :name => @name,
101
- :id => @id
102
- end
103
-
104
- def artifact_destroyer
105
- @artifact_destroyer ||= ArtifactDestroyer.new :config => @config,
106
- :name => @name,
107
- :id => @id
108
- end
109
-
110
- end
111
- end