right_publish 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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