right_publish 0.3.0 → 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.
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe RightPublish::Annotation do
4
+ subject { described_class } # the class itself, not an instance
5
+
6
+ context '.generate_html' do
7
+ context 'options' do
8
+ it 'includes stylesheets'
9
+ it 'includes scripts'
10
+ it 'includes the title in the head'
11
+ it 'includes an h1 with the title'
12
+ it 'accepts a single-glob filter'
13
+ it 'accepts a multi-glob filter'
14
+ it 'accepts complex filters'
15
+ end
16
+
17
+ it 'sorts its list alphabetically'
18
+ it 'generates folder elements'
19
+ it 'generates file elements'
20
+ it 'generates hierarchical trees of folders and files'
21
+ end
22
+ end
@@ -1,4 +1,3 @@
1
- require 'right_publish/repo'
2
1
  require 'spec_helper'
3
2
 
4
3
  describe RightPublish::RepoManager do
@@ -52,8 +51,7 @@ describe RightPublish::RepoManager do
52
51
  end
53
52
 
54
53
  it "accpets repos who are properly defined" do
55
- class GoodRepo
56
- include RightPublish::Repo
54
+ class GoodRepo < RightPublish::Repo
57
55
  REPO_KEY = :good_repo
58
56
  REPO_OPTIONS = {}
59
57
  end
data/spec/repo_spec.rb CHANGED
@@ -1,10 +1,8 @@
1
- require 'right_publish/repo'
2
1
  require 'spec_helper'
3
2
 
4
3
  describe RightPublish::Repo do
5
4
 
6
- class FakeRepo
7
- include RightPublish::Repo
5
+ class FakeRepo < RightPublish::Repo
8
6
  REPO_KEY = :fake_repo
9
7
  REPO_OPTIONS = {}
10
8
  end
@@ -48,25 +46,25 @@ describe RightPublish::Repo do
48
46
  @repo = RightPublish::RepoManager.get_repository(:fake_repo)
49
47
  end
50
48
 
51
- context "#fetch" do
49
+ context "#pull" do
52
50
  it "fetches from remote storage to local" do
53
51
  flexmock(RightPublish::Storage).should_receive(:sync_dirs).and_return do |src,dest,options|
54
52
  src.should be_equal(MockRemote)
55
53
  dest.should be_equal(MockLocal)
56
54
  nil
57
55
  end
58
- @repo.fetch
56
+ @repo.pull
59
57
  end
60
58
  end
61
59
 
62
- context "#store" do
60
+ context "#push" do
63
61
  it "stores from local storage to remote" do
64
62
  flexmock(RightPublish::Storage).should_receive(:sync_dirs).and_return do |src,dest,options|
65
63
  src.should be_equal(MockLocal)
66
64
  dest.should be_equal(MockRemote)
67
65
  nil
68
66
  end
69
- @repo.store
67
+ @repo.push
70
68
  end
71
69
  end
72
70
 
@@ -1,4 +1,3 @@
1
- require 'right_publish/repo'
2
1
  require 'spec_helper'
3
2
 
4
3
  describe RightPublish::AptRepo do
@@ -8,8 +7,9 @@ describe RightPublish::AptRepo do
8
7
  @repo_subdir = 'fake/'
9
8
 
10
9
  @repo = flexmock(RightPublish::RepoManager.get_repository(:apt_repo)) do |obj|
11
- obj.should_receive(:fetch)
12
- obj.should_receive(:store)
10
+ obj.should_receive(:pull)
11
+ obj.should_receive(:annotate)
12
+ obj.should_receive(:push)
13
13
  obj.should_receive(:do_in_subdir).and_return {|dir,block| block.call}
14
14
  obj.should_receive(:prune_all)
15
15
  obj.should_receive(:write_conf_file)
@@ -1,4 +1,3 @@
1
- require 'right_publish/repo'
2
1
  require 'spec_helper'
3
2
 
4
3
  describe RightPublish::GemRepo do
@@ -7,8 +6,9 @@ describe RightPublish::GemRepo do
7
6
  @install_expectations = []
8
7
  @repo_subdir = 'fake/'
9
8
  @repo = flexmock(RightPublish::RepoManager.get_repository(:gem_repo)) do |obj|
10
- obj.should_receive(:fetch)
11
- obj.should_receive(:store)
9
+ obj.should_receive(:pull)
10
+ obj.should_receive(:annotate)
11
+ obj.should_receive(:push)
12
12
  obj.should_receive(:do_in_subdir).and_return {|dir,block| block.call}
13
13
  end
14
14
 
@@ -1,4 +1,3 @@
1
- require 'right_publish/repo'
2
1
  require 'spec_helper'
3
2
 
4
3
  describe RightPublish::YumRepo do
@@ -17,8 +16,9 @@ describe RightPublish::YumRepo do
17
16
  before(:each) do
18
17
  @repo_subdir = 'fake/'
19
18
  @repo = flexmock(RightPublish::RepoManager.get_repository(:yum_repo)) do |obj|
20
- obj.should_receive(:fetch)
21
- obj.should_receive(:store)
19
+ obj.should_receive(:pull)
20
+ obj.should_receive(:annotate)
21
+ obj.should_receive(:push)
22
22
  obj.should_receive(:do_in_subdir).and_return {|dir,block| block.call}
23
23
  obj.should_receive(:yum_prune)
24
24
  obj.should_receive(:pkg_parts).and_return { |pkg| pkg_parts(pkg) }
data/spec/spec_helper.rb CHANGED
@@ -25,6 +25,13 @@ require 'flexmock'
25
25
  require 'ruby-debug'
26
26
  require 'simplecov' unless RUBY_VERSION =~ /1\.8/
27
27
 
28
+ # This is a Jewelerized project; it won't be activated as a gem when invoked in situ.
29
+ # Compensate by adding the lib dir to our path.
30
+ lib_dir = File.expand_path('../../lib', __FILE__)
31
+ $: << lib_dir unless $:.include?(lib_dir)
32
+
28
33
  RSpec.configure do |config|
29
34
  config.mock_with :flexmock
30
35
  end
36
+
37
+ require 'right_publish'
@@ -1,4 +1,3 @@
1
- require 'right_publish/storage'
2
1
  require 'spec_helper'
3
2
 
4
3
  describe RightPublish::StorageManager do
data/spec/storage_spec.rb CHANGED
@@ -1,4 +1,3 @@
1
- require 'right_publish/storage'
2
1
  require 'spec_helper'
3
2
 
4
3
  describe RightPublish::Storage do
@@ -43,7 +42,7 @@ describe RightPublish::Storage do
43
42
  create_proc = Proc.new { |file| files << file }
44
43
  delete_proc = Proc.new { |file| files.delete_if { |f| f.key == file } }
45
44
 
46
- # Create the File mocks and store in the Array
45
+ # Create the File mocks and push in the Array
47
46
  file_hash.each_pair do |name,expects|
48
47
  files << make_file(name, expects, create_proc, delete_proc )
49
48
  end
@@ -314,4 +313,29 @@ describe RightPublish::Storage do
314
313
  end
315
314
  end
316
315
 
316
+ context ".guess_mime_type" do
317
+ it 'always prefers RightPublish built-in types' do
318
+ RightPublish::MIME_TYPES.each_pair do |mt, ext|
319
+ RightPublish::Storage.guess_mime_type("some-file.#{ext}").should == mt
320
+ end
321
+ end
322
+
323
+ other_types = {
324
+ 'html' => 'text/html',
325
+ 'txt' => 'text/plain',
326
+ 'gz' => 'application/x-gzip',
327
+ 'png' => 'image/png',
328
+ 'jpg' => 'image/jpeg'
329
+ }
330
+
331
+ other_types.each_pair do |ext, mt|
332
+ it "knows about .#{ext} files" do
333
+ RightPublish::Storage.guess_mime_type("some-file.#{ext}").should == mt
334
+ end
335
+ end
336
+
337
+ it 'guesses application/octet-stream for unknown files' do
338
+ RightPublish::Storage.guess_mime_type('some-file.xyzzywwfoobflo').should == 'application/octet-stream'
339
+ end
340
+ end
317
341
  end
@@ -1,4 +1,3 @@
1
- require 'right_publish/stores/local'
2
1
  require 'spec_helper'
3
2
 
4
3
  describe RightPublish::LocalStorage do
@@ -1,4 +1,3 @@
1
- require 'right_publish/stores/s3'
2
1
  require 'spec_helper'
3
2
 
4
3
  describe RightPublish::S3Storage do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: right_publish
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 3
8
+ - 4
9
9
  - 0
10
- version: 0.3.0
10
+ version: 0.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Brian Szmyd
@@ -16,12 +16,10 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2013-08-12 00:00:00 Z
19
+ date: 2013-11-12 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: builder
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
23
  none: false
26
24
  requirements:
27
25
  - - ">="
@@ -31,11 +29,11 @@ dependencies:
31
29
  - 0
32
30
  version: "0"
33
31
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: fog
32
+ requirement: *id001
37
33
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
34
+ name: builder
35
+ - !ruby/object:Gem::Dependency
36
+ version_requirements: &id002 !ruby/object:Gem::Requirement
39
37
  none: false
40
38
  requirements:
41
39
  - - ~>
@@ -46,11 +44,42 @@ dependencies:
46
44
  - 9
47
45
  version: "1.9"
48
46
  type: :runtime
49
- version_requirements: *id002
47
+ requirement: *id002
48
+ prerelease: false
49
+ name: fog
50
50
  - !ruby/object:Gem::Dependency
51
- name: trollop
51
+ version_requirements: &id003 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - <=
55
+ - !ruby/object:Gem::Version
56
+ hash: 125
57
+ segments:
58
+ - 0
59
+ - 25
60
+ - 3
61
+ version: 0.25.3
62
+ type: :runtime
63
+ requirement: *id003
52
64
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
65
+ name: excon
66
+ - !ruby/object:Gem::Dependency
67
+ version_requirements: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ~>
71
+ - !ruby/object:Gem::Version
72
+ hash: 15
73
+ segments:
74
+ - 1
75
+ - 0
76
+ version: "1.0"
77
+ type: :runtime
78
+ requirement: *id004
79
+ prerelease: false
80
+ name: mime-types
81
+ - !ruby/object:Gem::Dependency
82
+ version_requirements: &id005 !ruby/object:Gem::Requirement
54
83
  none: false
55
84
  requirements:
56
85
  - - ~>
@@ -61,11 +90,11 @@ dependencies:
61
90
  - 0
62
91
  version: "2.0"
63
92
  type: :runtime
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
66
- name: rake
93
+ requirement: *id005
67
94
  prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
95
+ name: trollop
96
+ - !ruby/object:Gem::Dependency
97
+ version_requirements: &id006 !ruby/object:Gem::Requirement
69
98
  none: false
70
99
  requirements:
71
100
  - - ~>
@@ -76,11 +105,11 @@ dependencies:
76
105
  - 9
77
106
  version: "0.9"
78
107
  type: :development
79
- version_requirements: *id004
80
- - !ruby/object:Gem::Dependency
81
- name: jeweler
108
+ requirement: *id006
82
109
  prerelease: false
83
- requirement: &id005 !ruby/object:Gem::Requirement
110
+ name: rake
111
+ - !ruby/object:Gem::Dependency
112
+ version_requirements: &id007 !ruby/object:Gem::Requirement
84
113
  none: false
85
114
  requirements:
86
115
  - - ~>
@@ -92,11 +121,11 @@ dependencies:
92
121
  - 3
93
122
  version: 1.8.3
94
123
  type: :development
95
- version_requirements: *id005
96
- - !ruby/object:Gem::Dependency
97
- name: right_develop
124
+ requirement: *id007
98
125
  prerelease: false
99
- requirement: &id006 !ruby/object:Gem::Requirement
126
+ name: jeweler
127
+ - !ruby/object:Gem::Dependency
128
+ version_requirements: &id008 !ruby/object:Gem::Requirement
100
129
  none: false
101
130
  requirements:
102
131
  - - ~>
@@ -107,11 +136,11 @@ dependencies:
107
136
  - 0
108
137
  version: "1.0"
109
138
  type: :development
110
- version_requirements: *id006
111
- - !ruby/object:Gem::Dependency
112
- name: rdoc
139
+ requirement: *id008
113
140
  prerelease: false
114
- requirement: &id007 !ruby/object:Gem::Requirement
141
+ name: right_develop
142
+ - !ruby/object:Gem::Dependency
143
+ version_requirements: &id009 !ruby/object:Gem::Requirement
115
144
  none: false
116
145
  requirements:
117
146
  - - ">="
@@ -123,11 +152,11 @@ dependencies:
123
152
  - 2
124
153
  version: 2.4.2
125
154
  type: :development
126
- version_requirements: *id007
127
- - !ruby/object:Gem::Dependency
128
- name: rspec
155
+ requirement: *id009
129
156
  prerelease: false
130
- requirement: &id008 !ruby/object:Gem::Requirement
157
+ name: rdoc
158
+ - !ruby/object:Gem::Dependency
159
+ version_requirements: &id010 !ruby/object:Gem::Requirement
131
160
  none: false
132
161
  requirements:
133
162
  - - ~>
@@ -138,11 +167,11 @@ dependencies:
138
167
  - 0
139
168
  version: "2.0"
140
169
  type: :development
141
- version_requirements: *id008
142
- - !ruby/object:Gem::Dependency
143
- name: flexmock
170
+ requirement: *id010
144
171
  prerelease: false
145
- requirement: &id009 !ruby/object:Gem::Requirement
172
+ name: rspec
173
+ - !ruby/object:Gem::Dependency
174
+ version_requirements: &id011 !ruby/object:Gem::Requirement
146
175
  none: false
147
176
  requirements:
148
177
  - - ~>
@@ -153,11 +182,11 @@ dependencies:
153
182
  - 9
154
183
  version: "0.9"
155
184
  type: :development
156
- version_requirements: *id009
157
- - !ruby/object:Gem::Dependency
158
- name: simplecov
185
+ requirement: *id011
159
186
  prerelease: false
160
- requirement: &id010 !ruby/object:Gem::Requirement
187
+ name: flexmock
188
+ - !ruby/object:Gem::Dependency
189
+ version_requirements: &id012 !ruby/object:Gem::Requirement
161
190
  none: false
162
191
  requirements:
163
192
  - - ">="
@@ -167,11 +196,11 @@ dependencies:
167
196
  - 0
168
197
  version: "0"
169
198
  type: :development
170
- version_requirements: *id010
171
- - !ruby/object:Gem::Dependency
172
- name: ruby-debug
199
+ requirement: *id012
173
200
  prerelease: false
174
- requirement: &id011 !ruby/object:Gem::Requirement
201
+ name: simplecov
202
+ - !ruby/object:Gem::Dependency
203
+ version_requirements: &id013 !ruby/object:Gem::Requirement
175
204
  none: false
176
205
  requirements:
177
206
  - - ">="
@@ -182,11 +211,11 @@ dependencies:
182
211
  - 10
183
212
  version: "0.10"
184
213
  type: :development
185
- version_requirements: *id011
186
- - !ruby/object:Gem::Dependency
187
- name: ruby-debug19
214
+ requirement: *id013
188
215
  prerelease: false
189
- requirement: &id012 !ruby/object:Gem::Requirement
216
+ name: ruby-debug
217
+ - !ruby/object:Gem::Dependency
218
+ version_requirements: &id014 !ruby/object:Gem::Requirement
190
219
  none: false
191
220
  requirements:
192
221
  - - ">="
@@ -198,12 +227,14 @@ dependencies:
198
227
  - 6
199
228
  version: 0.11.6
200
229
  type: :development
201
- version_requirements: *id012
230
+ requirement: *id014
231
+ prerelease: false
232
+ name: ruby-debug19
202
233
  description: A tool for maintaining S3-based DEB, GEM and RPM packages.
203
234
  email: support@rightscale.com
204
235
  executables:
205
- - autosign.expect
206
236
  - right_publish
237
+ - autosign.expect
207
238
  extensions: []
208
239
 
209
240
  extra_rdoc_files:
@@ -219,16 +250,20 @@ files:
219
250
  - bin/autosign.expect
220
251
  - bin/right_publish
221
252
  - lib/right_publish.rb
253
+ - lib/right_publish/annotation.rb
254
+ - lib/right_publish/cli.rb
222
255
  - lib/right_publish/profile.rb
223
256
  - lib/right_publish/repo.rb
224
257
  - lib/right_publish/repos/apt.rb
225
258
  - lib/right_publish/repos/gem.rb
259
+ - lib/right_publish/repos/msi.rb
226
260
  - lib/right_publish/repos/yum.rb
227
261
  - lib/right_publish/repos/zypp.rb
228
262
  - lib/right_publish/storage.rb
229
263
  - lib/right_publish/stores/local.rb
230
264
  - lib/right_publish/stores/s3.rb
231
265
  - right_publish.gemspec
266
+ - spec/annotation_spec.rb
232
267
  - spec/repo_manager_spec.rb
233
268
  - spec/repo_spec.rb
234
269
  - spec/repos/apt_spec.rb