rake-funnel 0.1.0.pre → 0.2.0.pre

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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rake/funnel/integration/teamcity/nunit_plugin.rb +3 -7
  3. data/lib/rake/funnel/support/binary_version_reader.rb +32 -0
  4. data/lib/rake/funnel/support/copier.rb +27 -0
  5. data/lib/rake/funnel/support/msbuild/build_tool.rb +13 -17
  6. data/lib/rake/funnel/support/{side_by_side_specs/remover.rb → specs_remover.rb} +2 -2
  7. data/lib/rake/funnel/support/zipper.rb +49 -0
  8. data/lib/rake/funnel/tasks/assembly_version.rb +17 -11
  9. data/lib/rake/funnel/tasks/bin_path.rb +17 -10
  10. data/lib/rake/funnel/tasks/copy.rb +13 -30
  11. data/lib/rake/funnel/tasks/environments.rb +36 -23
  12. data/lib/rake/funnel/tasks/msbuild.rb +21 -21
  13. data/lib/rake/funnel/tasks/msdeploy.rb +17 -24
  14. data/lib/rake/funnel/tasks/nunit.rb +17 -17
  15. data/lib/rake/funnel/tasks/paket.rb +15 -9
  16. data/lib/rake/funnel/tasks/quick_template.rb +14 -12
  17. data/lib/rake/funnel/tasks/side_by_side_specs.rb +16 -10
  18. data/lib/rake/funnel/tasks/timing.rb +16 -9
  19. data/lib/rake/funnel/tasks/zip.rb +14 -48
  20. data/lib/rake/funnel/version.rb +1 -1
  21. data/spec/rake/funnel/integration/teamcity/nunit_plugin_spec.rb +16 -18
  22. data/spec/rake/funnel/support/binary_version_reader_spec.rb +29 -0
  23. data/spec/rake/funnel/support/copier_spec.rb +58 -0
  24. data/spec/rake/funnel/support/{side_by_side_specs/example → specs_remover}/FooCode.cs +0 -0
  25. data/spec/rake/funnel/support/{side_by_side_specs/example → specs_remover}/FooSpecs.cs +0 -0
  26. data/spec/rake/funnel/support/{side_by_side_specs/example → specs_remover}/Sample.csproj +0 -0
  27. data/spec/rake/funnel/support/{side_by_side_specs/example → specs_remover}/Specs.cs +0 -0
  28. data/spec/rake/funnel/support/{side_by_side_specs/example → specs_remover}/subdir/BarCode.cs +0 -0
  29. data/spec/rake/funnel/support/{side_by_side_specs/example → specs_remover}/subdir/BarSpecs.cs +0 -0
  30. data/spec/rake/funnel/support/{side_by_side_specs/remover_spec.rb → specs_remover_spec.rb} +2 -2
  31. data/spec/rake/funnel/support/zipper_spec.rb +77 -0
  32. data/spec/rake/funnel/tasks/assembly_version_spec.rb +10 -19
  33. data/spec/rake/funnel/tasks/bin_path_spec.rb +19 -7
  34. data/spec/rake/funnel/tasks/copy_spec.rb +18 -73
  35. data/spec/rake/funnel/tasks/environments_spec.rb +59 -105
  36. data/spec/rake/funnel/tasks/msbuild_spec.rb +30 -30
  37. data/spec/rake/funnel/tasks/msdeploy_spec.rb +0 -23
  38. data/spec/rake/funnel/tasks/nunit_spec.rb +11 -13
  39. data/spec/rake/funnel/tasks/paket_spec.rb +3 -45
  40. data/spec/rake/funnel/tasks/quick_template_spec.rb +0 -27
  41. data/spec/rake/funnel/tasks/side_by_side_specs_spec.rb +3 -4
  42. data/spec/rake/funnel/tasks/zip_spec.rb +21 -101
  43. metadata +26 -17
@@ -1,11 +1,8 @@
1
- require 'tmpdir'
2
-
3
1
  include Rake
4
2
  include Rake::Funnel::Support
5
3
 
6
4
  describe Rake::Funnel::Tasks::Zip do
7
5
  before {
8
- CLEAN.clear
9
6
  Task.clear
10
7
  }
11
8
 
@@ -14,117 +11,40 @@ describe Rake::Funnel::Tasks::Zip do
14
11
  its(:source) { should eq([]) }
15
12
  its(:target) { should be_nil }
16
13
  its(:zip_root) { should be_nil }
17
-
18
- it 'should not add the target file to the files to be cleaned' do
19
- expect(CLEAN).to be_empty
20
- end
21
-
22
- describe 'overriding defaults' do
23
- subject {
24
- described_class.new do |t|
25
- t.target = 'something.zip'
26
- end
27
- }
28
-
29
- it 'should add the target file to the files to be cleaned' do
30
- expect(CLEAN).to include(subject.target)
31
- end
32
- end
33
14
  end
34
15
 
35
16
  describe 'execution' do
36
17
  let(:source) { %w(bin/1 bin/2 bin/3/4) }
37
- let(:target) { 'some path/file.zip' }
38
- let(:zip_root) { nil }
18
+ let(:finder) { instance_double(Finder).as_null_object }
19
+
20
+ before {
21
+ allow(finder).to receive(:all_or_default).and_return(source)
22
+ allow(Finder).to receive(:new).and_return(finder)
23
+ }
24
+
25
+ before {
26
+ allow(Zipper).to receive(:zip)
27
+ allow(Rake).to receive(:rake_output_message)
28
+ }
39
29
 
40
- subject! {
30
+ subject {
41
31
  described_class.new do |t|
42
32
  t.source = source
43
- t.target = target
44
- t.zip_root = zip_root
33
+ t.target = 'some path/file.zip'
34
+ t.zip_root = 'zip root'
45
35
  end
46
36
  }
47
37
 
48
- context 'failure' do
49
- context 'target not defined' do
50
- let(:target) { nil }
38
+ before {
39
+ Task[subject.name].invoke
40
+ }
51
41
 
52
- it 'should fail' do
53
- expect { Task[subject.name].invoke }.to raise_error(/Target not defined/)
54
- end
55
- end
42
+ it 'should delegate to Zipper' do
43
+ expect(Zipper).to have_received(:zip).with(subject.source, subject.target, subject.zip_root)
56
44
  end
57
45
 
58
- context 'success' do
59
- let(:finder) { double(Finder).as_null_object }
60
- let(:zip) { double(::Zip::File).as_null_object }
61
- let(:mtime) { Time.new(2015, 3, 9) }
62
- let(:zip_entry) { double(::Zip::Entry).as_null_object }
63
-
64
- before {
65
- allow(finder).to receive(:all_or_default).and_return(source)
66
- allow(Finder).to receive(:new).and_return(finder)
67
- allow(RakeFileUtils).to receive(:mkdir_p)
68
- allow(Rake).to receive(:rake_output_message)
69
- allow(::Zip::File).to receive(:open).with(target, ::Zip::File::CREATE).and_yield(zip)
70
- }
71
-
72
- before {
73
- allow(zip).to receive(:add).and_return(zip_entry)
74
- allow(File).to receive(:mtime).and_return(mtime)
75
- }
76
-
77
- before {
78
- Task[subject.name].invoke
79
- }
80
-
81
- it 'should create the target directory' do
82
- expect(RakeFileUtils).to have_received(:mkdir_p).with(File.dirname(target))
83
- end
84
-
85
- it 'should allow unicode names' do
86
- expect(::Zip.unicode_names).to eq(true)
87
- end
88
-
89
- it 'should use best compression' do
90
- expect(::Zip.default_compression).to eq(Zlib::BEST_COMPRESSION)
91
- end
92
-
93
- it 'should report the created zip file' do
94
- expect(Rake).to have_received(:rake_output_message).with("Created #{target}")
95
- end
96
-
97
- [nil, '', 'some path/inside the zip file'].each do |root|
98
- context "with '#{root || 'nil'}' zip root" do
99
- let(:zip_root) { root }
100
-
101
- def build_args
102
- common_path = finder.all_or_default.common_path
103
-
104
- finder.all_or_default.map do |file|
105
- zip_path = file.sub(%r|^#{Regexp.escape(common_path)}/|, '')
106
- zip_path = File.join(zip_root, zip_path) unless zip_root.nil? || zip_root.empty?
107
-
108
- [
109
- zip_path,
110
- file
111
- ]
112
- end
113
- end
114
-
115
- it 'should put files below a common path in the zip root' do
116
- files = build_args
117
-
118
- files.each do |file_args|
119
- expect(zip).to have_received(:add).with(*file_args)
120
- end
121
- end
122
-
123
- it 'should explicitly set the file mtime to work around https://github.com/rubyzip/rubyzip/issues/176' do
124
- expect(zip_entry).to have_received(:time=).with(mtime).exactly(build_args.length).times
125
- end
126
- end
127
- end
46
+ it 'should report the created zip file' do
47
+ expect(Rake).to have_received(:rake_output_message).with("Created #{subject.target}")
128
48
  end
129
49
  end
130
50
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-funnel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre
4
+ version: 0.2.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Groß
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-13 00:00:00.000000000 Z
11
+ date: 2015-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -107,6 +107,8 @@ files:
107
107
  - lib/rake/funnel/support/assembly_version/languages/fs
108
108
  - lib/rake/funnel/support/assembly_version/languages/vb
109
109
  - lib/rake/funnel/support/assembly_version_writer.rb
110
+ - lib/rake/funnel/support/binary_version_reader.rb
111
+ - lib/rake/funnel/support/copier.rb
110
112
  - lib/rake/funnel/support/environments.rb
111
113
  - lib/rake/funnel/support/environments/loader.rb
112
114
  - lib/rake/funnel/support/internal/finder.rb
@@ -119,13 +121,14 @@ files:
119
121
  - lib/rake/funnel/support/msdeploy/registry_patch.rb
120
122
  - lib/rake/funnel/support/patch.rb
121
123
  - lib/rake/funnel/support/side_by_side_specs.rb
122
- - lib/rake/funnel/support/side_by_side_specs/remover.rb
124
+ - lib/rake/funnel/support/specs_remover.rb
123
125
  - lib/rake/funnel/support/template_engine.rb
124
126
  - lib/rake/funnel/support/timing.rb
125
127
  - lib/rake/funnel/support/timing/report.rb
126
128
  - lib/rake/funnel/support/timing/statistics.rb
127
129
  - lib/rake/funnel/support/version_info.rb
128
130
  - lib/rake/funnel/support/which.rb
131
+ - lib/rake/funnel/support/zipper.rb
129
132
  - lib/rake/funnel/tasks/assembly_version.rb
130
133
  - lib/rake/funnel/tasks/bin_path.rb
131
134
  - lib/rake/funnel/tasks/copy.rb
@@ -158,6 +161,8 @@ files:
158
161
  - spec/rake/funnel/support/argument_mapper/styles/styles_spec.rb
159
162
  - spec/rake/funnel/support/assembly_version/from_version_files_spec.rb
160
163
  - spec/rake/funnel/support/assembly_version_writer_spec.rb
164
+ - spec/rake/funnel/support/binary_version_reader_spec.rb
165
+ - spec/rake/funnel/support/copier_spec.rb
161
166
  - spec/rake/funnel/support/environments/loader_spec.rb
162
167
  - spec/rake/funnel/support/internal/finder_spec.rb
163
168
  - spec/rake/funnel/support/internal/instantiate_symbol_spec.rb
@@ -166,17 +171,18 @@ files:
166
171
  - spec/rake/funnel/support/msbuild/build_tool_spec.rb
167
172
  - spec/rake/funnel/support/msdeploy/registry_patch_spec.rb
168
173
  - spec/rake/funnel/support/patch_spec.rb
169
- - spec/rake/funnel/support/side_by_side_specs/example/FooCode.cs
170
- - spec/rake/funnel/support/side_by_side_specs/example/FooSpecs.cs
171
- - spec/rake/funnel/support/side_by_side_specs/example/Sample.csproj
172
- - spec/rake/funnel/support/side_by_side_specs/example/Specs.cs
173
- - spec/rake/funnel/support/side_by_side_specs/example/subdir/BarCode.cs
174
- - spec/rake/funnel/support/side_by_side_specs/example/subdir/BarSpecs.cs
175
- - spec/rake/funnel/support/side_by_side_specs/remover_spec.rb
174
+ - spec/rake/funnel/support/specs_remover/FooCode.cs
175
+ - spec/rake/funnel/support/specs_remover/FooSpecs.cs
176
+ - spec/rake/funnel/support/specs_remover/Sample.csproj
177
+ - spec/rake/funnel/support/specs_remover/Specs.cs
178
+ - spec/rake/funnel/support/specs_remover/subdir/BarCode.cs
179
+ - spec/rake/funnel/support/specs_remover/subdir/BarSpecs.cs
180
+ - spec/rake/funnel/support/specs_remover_spec.rb
176
181
  - spec/rake/funnel/support/template_engine_spec.rb
177
182
  - spec/rake/funnel/support/timing/report_spec.rb
178
183
  - spec/rake/funnel/support/version_info_spec.rb
179
184
  - spec/rake/funnel/support/which_spec.rb
185
+ - spec/rake/funnel/support/zipper_spec.rb
180
186
  - spec/rake/funnel/tasks/assembly_version_spec.rb
181
187
  - spec/rake/funnel/tasks/bin_path_spec.rb
182
188
  - spec/rake/funnel/tasks/copy_spec.rb
@@ -233,6 +239,8 @@ test_files:
233
239
  - spec/rake/funnel/support/argument_mapper/styles/styles_spec.rb
234
240
  - spec/rake/funnel/support/assembly_version/from_version_files_spec.rb
235
241
  - spec/rake/funnel/support/assembly_version_writer_spec.rb
242
+ - spec/rake/funnel/support/binary_version_reader_spec.rb
243
+ - spec/rake/funnel/support/copier_spec.rb
236
244
  - spec/rake/funnel/support/environments/loader_spec.rb
237
245
  - spec/rake/funnel/support/internal/finder_spec.rb
238
246
  - spec/rake/funnel/support/internal/instantiate_symbol_spec.rb
@@ -241,17 +249,18 @@ test_files:
241
249
  - spec/rake/funnel/support/msbuild/build_tool_spec.rb
242
250
  - spec/rake/funnel/support/msdeploy/registry_patch_spec.rb
243
251
  - spec/rake/funnel/support/patch_spec.rb
244
- - spec/rake/funnel/support/side_by_side_specs/example/FooCode.cs
245
- - spec/rake/funnel/support/side_by_side_specs/example/FooSpecs.cs
246
- - spec/rake/funnel/support/side_by_side_specs/example/Sample.csproj
247
- - spec/rake/funnel/support/side_by_side_specs/example/Specs.cs
248
- - spec/rake/funnel/support/side_by_side_specs/example/subdir/BarCode.cs
249
- - spec/rake/funnel/support/side_by_side_specs/example/subdir/BarSpecs.cs
250
- - spec/rake/funnel/support/side_by_side_specs/remover_spec.rb
252
+ - spec/rake/funnel/support/specs_remover/FooCode.cs
253
+ - spec/rake/funnel/support/specs_remover/FooSpecs.cs
254
+ - spec/rake/funnel/support/specs_remover/Sample.csproj
255
+ - spec/rake/funnel/support/specs_remover/Specs.cs
256
+ - spec/rake/funnel/support/specs_remover/subdir/BarCode.cs
257
+ - spec/rake/funnel/support/specs_remover/subdir/BarSpecs.cs
258
+ - spec/rake/funnel/support/specs_remover_spec.rb
251
259
  - spec/rake/funnel/support/template_engine_spec.rb
252
260
  - spec/rake/funnel/support/timing/report_spec.rb
253
261
  - spec/rake/funnel/support/version_info_spec.rb
254
262
  - spec/rake/funnel/support/which_spec.rb
263
+ - spec/rake/funnel/support/zipper_spec.rb
255
264
  - spec/rake/funnel/tasks/assembly_version_spec.rb
256
265
  - spec/rake/funnel/tasks/bin_path_spec.rb
257
266
  - spec/rake/funnel/tasks/copy_spec.rb