rake-funnel 0.7.0.pre → 0.8.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.
- checksums.yaml +4 -4
- data/lib/rake/funnel/support/specs_remover.rb +35 -15
- data/lib/rake/funnel/support/trace.rb +15 -0
- data/lib/rake/funnel/version.rb +1 -1
- data/spec/rake/funnel/support/specs_remover/multiple projects/Sample1.csproj +24 -0
- data/spec/rake/funnel/support/specs_remover/multiple projects/Sample2.csproj +24 -0
- data/spec/rake/funnel/support/specs_remover/multiple projects/paket.references +3 -0
- data/spec/rake/funnel/support/specs_remover_spec.rb +29 -0
- data/spec/rake/funnel/support/trace_spec.rb +29 -0
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76e33792436ca221a9d1b5ec6572d7dadd2ac3af
|
4
|
+
data.tar.gz: 4d856be39020bd11358c0a74fa0fa214c406891c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31032a16b781db6847645733f160ff733f248d58b0d23d433970e3e8a76a3adaa7a8515f638a00fe7ea4a51d97d2593ccf9c9cc019a425c4f73a50f2d491243b
|
7
|
+
data.tar.gz: c7be402ab2563c1aa1d52bff0610d700ffd7afc57ba357687539a6f480355dbac53e525a1edeeb11f21b8747e7c30f08b78be20abae47325c2d7e7b34ba5f422
|
@@ -20,38 +20,55 @@ module Rake
|
|
20
20
|
private
|
21
21
|
def remove(projects, references, specs)
|
22
22
|
Dir[*projects].map do |project|
|
23
|
-
|
24
|
-
references = remove_references(references, xml)
|
25
|
-
specs = remove_specs(specs, xml)
|
23
|
+
Trace.message("Processing #{project} with references #{references} and specs #{specs}")
|
26
24
|
|
27
|
-
|
25
|
+
removed_references, removed_specs = with_document(project) do |xml|
|
26
|
+
[remove_references(references, xml), remove_specs(specs, xml)]
|
27
|
+
end
|
28
28
|
|
29
29
|
{
|
30
30
|
project: project,
|
31
|
-
packages: resolve_package_names(
|
32
|
-
specs: resolve_paths(project,
|
31
|
+
packages: resolve_package_names(removed_references),
|
32
|
+
specs: resolve_paths(project, removed_specs)
|
33
33
|
}
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
def with_document(project)
|
38
|
+
xml = REXML::Document.new(File.read(project), attribute_quote: :quote)
|
39
|
+
|
40
|
+
removed = yield(xml) if block_given?
|
41
|
+
|
42
|
+
save(project, xml) if [removed].flatten.compact.any?
|
43
|
+
|
44
|
+
removed
|
45
|
+
end
|
46
|
+
|
37
47
|
def remove_references(references, xml)
|
38
|
-
deleted = references.map
|
48
|
+
deleted = references.map { |ref|
|
39
49
|
query = "/Project//Reference[starts-with(lower-case(@Include), '#{ref.downcase}')]"
|
40
50
|
xml.elements.delete_all(query)
|
41
|
-
|
51
|
+
}
|
52
|
+
.flatten
|
53
|
+
.tap { |d| Trace.message("Removed references: #{d.inspect}") }
|
42
54
|
|
43
|
-
deleted.
|
55
|
+
deleted.map { |d|
|
44
56
|
d.get_elements('/HintPath').map(&:text)
|
45
|
-
}
|
57
|
+
}
|
58
|
+
.flatten
|
59
|
+
.tap { |d| Trace.message("HintPaths: #{d}") }
|
46
60
|
end
|
47
61
|
|
48
62
|
def remove_specs(specs, xml)
|
49
|
-
deleted = specs.map
|
63
|
+
deleted = specs.map { |glob|
|
50
64
|
query = "/Project//Compile[matches(lower-case(@Include), '#{glob}')]"
|
51
65
|
xml.elements.delete_all(query)
|
52
|
-
|
66
|
+
}
|
53
67
|
|
54
|
-
deleted
|
68
|
+
deleted
|
69
|
+
.flatten
|
70
|
+
.map { |d| d.attributes['Include'] }
|
71
|
+
.tap { |d| Trace.message("Removed specs: #{d}") }
|
55
72
|
end
|
56
73
|
|
57
74
|
def save(project, xml)
|
@@ -87,6 +104,8 @@ module Rake
|
|
87
104
|
def remove_packages(projects, packages)
|
88
105
|
projects.each do |project|
|
89
106
|
references = paket_references_for(project)
|
107
|
+
Trace.message("Found #{references || 'no paket.references'} for #{project}}")
|
108
|
+
|
90
109
|
next unless references
|
91
110
|
|
92
111
|
text = File.read(references)
|
@@ -105,6 +124,7 @@ module Rake
|
|
105
124
|
end
|
106
125
|
|
107
126
|
def remove(text, packages)
|
127
|
+
Trace.message("Removing packages: #{packages.inspect}")
|
108
128
|
packages.each do |package|
|
109
129
|
text = text.gsub(/^#{package}.*\n?/i, '')
|
110
130
|
end
|
@@ -119,9 +139,9 @@ module Rake
|
|
119
139
|
list(args[:references]),
|
120
140
|
list(args[:specs]))
|
121
141
|
|
122
|
-
delete(specs)
|
123
|
-
|
124
142
|
PaketReferences.remove_packages(projects, list(args[:packages]) + packages)
|
143
|
+
|
144
|
+
delete(specs)
|
125
145
|
end
|
126
146
|
|
127
147
|
private
|
data/lib/rake/funnel/version.rb
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
3
|
+
<ItemGroup>
|
4
|
+
<Reference Include="Some-Ref">
|
5
|
+
<HintPath>somewhere\Sample-Ref.dll</HintPath>
|
6
|
+
</Reference>
|
7
|
+
<Reference Include="Ref-Without-HintPath" />
|
8
|
+
<Reference Include="System" />
|
9
|
+
</ItemGroup>
|
10
|
+
<ItemGroup>
|
11
|
+
<Compile Include="1Specs.cs" />
|
12
|
+
</ItemGroup>
|
13
|
+
<Choose>
|
14
|
+
<When Condition="ignored">
|
15
|
+
<ItemGroup>
|
16
|
+
<Reference Include="Paket-Ref">
|
17
|
+
<HintPath>..\..\packages\Paket-Ref\lib\net451\Paket-Ref.dll</HintPath>
|
18
|
+
<Private>True</Private>
|
19
|
+
<Paket>True</Paket>
|
20
|
+
</Reference>
|
21
|
+
</ItemGroup>
|
22
|
+
</When>
|
23
|
+
</Choose>
|
24
|
+
</Project>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
3
|
+
<ItemGroup>
|
4
|
+
<Reference Include="Some-Ref">
|
5
|
+
<HintPath>somewhere\Sample-Ref.dll</HintPath>
|
6
|
+
</Reference>
|
7
|
+
<Reference Include="Ref-Without-HintPath" />
|
8
|
+
<Reference Include="System" />
|
9
|
+
</ItemGroup>
|
10
|
+
<ItemGroup>
|
11
|
+
<Compile Include="1Specs.cs" />
|
12
|
+
</ItemGroup>
|
13
|
+
<Choose>
|
14
|
+
<When Condition="ignored">
|
15
|
+
<ItemGroup>
|
16
|
+
<Reference Include="Paket-Ref">
|
17
|
+
<HintPath>..\..\packages\Paket-Ref\lib\net451\Paket-Ref.dll</HintPath>
|
18
|
+
<Private>True</Private>
|
19
|
+
<Paket>True</Paket>
|
20
|
+
</Reference>
|
21
|
+
</ItemGroup>
|
22
|
+
</When>
|
23
|
+
</Choose>
|
24
|
+
</Project>
|
@@ -1,4 +1,8 @@
|
|
1
1
|
describe Rake::Funnel::Support::SpecsRemover do
|
2
|
+
before {
|
3
|
+
allow(Rake::Funnel::Support::Trace).to receive(:message)
|
4
|
+
}
|
5
|
+
|
2
6
|
describe 'removal' do
|
3
7
|
let(:projects) {}
|
4
8
|
let(:references) {}
|
@@ -220,5 +224,30 @@ describe Rake::Funnel::Support::SpecsRemover do
|
|
220
224
|
end
|
221
225
|
end
|
222
226
|
end
|
227
|
+
|
228
|
+
context 'multiple projects' do
|
229
|
+
let(:example) { 'multiple projects' }
|
230
|
+
|
231
|
+
before {
|
232
|
+
Dir.chdir(temp_dir) do
|
233
|
+
described_class.remove(projects: projects,
|
234
|
+
references: references,
|
235
|
+
specs: specs,
|
236
|
+
packages: packages)
|
237
|
+
end
|
238
|
+
}
|
239
|
+
|
240
|
+
describe 'projects' do
|
241
|
+
it 'should remove references' do
|
242
|
+
expect(content('Sample1.csproj')).not_to include(*references)
|
243
|
+
expect(content('Sample2.csproj')).not_to include(*references)
|
244
|
+
end
|
245
|
+
|
246
|
+
it 'should remove compiled specs' do
|
247
|
+
expect(content('Sample1.csproj')).not_to include(*%w(Specs.cs))
|
248
|
+
expect(content('Sample2.csproj')).not_to include(*%w(Specs.cs))
|
249
|
+
end
|
250
|
+
end
|
251
|
+
end
|
223
252
|
end
|
224
253
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
describe Rake::Funnel::Support::Trace do
|
2
|
+
before {
|
3
|
+
allow(Rake).to receive(:rake_output_message)
|
4
|
+
}
|
5
|
+
|
6
|
+
context 'Rake run with --trace' do
|
7
|
+
before {
|
8
|
+
allow(Rake.application.options).to receive(:trace).and_return(true)
|
9
|
+
}
|
10
|
+
|
11
|
+
it 'should write messages' do
|
12
|
+
described_class.message('foo')
|
13
|
+
|
14
|
+
expect(Rake).to have_received(:rake_output_message).with('foo')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'Rake run without --trace' do
|
19
|
+
before {
|
20
|
+
allow(Rake.application.options).to receive(:trace).and_return(false)
|
21
|
+
}
|
22
|
+
|
23
|
+
it 'should not write messages' do
|
24
|
+
described_class.message('foo')
|
25
|
+
|
26
|
+
expect(Rake).not_to have_received(:rake_output_message)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
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.
|
4
|
+
version: 0.8.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-
|
11
|
+
date: 2015-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -126,6 +126,7 @@ files:
|
|
126
126
|
- lib/rake/funnel/support/timing.rb
|
127
127
|
- lib/rake/funnel/support/timing/report.rb
|
128
128
|
- lib/rake/funnel/support/timing/statistics.rb
|
129
|
+
- lib/rake/funnel/support/trace.rb
|
129
130
|
- lib/rake/funnel/support/version_info.rb
|
130
131
|
- lib/rake/funnel/support/which.rb
|
131
132
|
- lib/rake/funnel/support/zipper.rb
|
@@ -172,6 +173,9 @@ files:
|
|
172
173
|
- spec/rake/funnel/support/msbuild/build_tool_spec.rb
|
173
174
|
- spec/rake/funnel/support/msdeploy/registry_patch_spec.rb
|
174
175
|
- spec/rake/funnel/support/patch_spec.rb
|
176
|
+
- spec/rake/funnel/support/specs_remover/multiple projects/Sample1.csproj
|
177
|
+
- spec/rake/funnel/support/specs_remover/multiple projects/Sample2.csproj
|
178
|
+
- spec/rake/funnel/support/specs_remover/multiple projects/paket.references
|
175
179
|
- spec/rake/funnel/support/specs_remover/project-specific paket.references/Sample.csproj
|
176
180
|
- spec/rake/funnel/support/specs_remover/project-specific paket.references/Sample.csproj.paket.references
|
177
181
|
- spec/rake/funnel/support/specs_remover/project-specific paket.references/paket.references
|
@@ -187,6 +191,7 @@ files:
|
|
187
191
|
- spec/rake/funnel/support/specs_remover_spec.rb
|
188
192
|
- spec/rake/funnel/support/template_engine_spec.rb
|
189
193
|
- spec/rake/funnel/support/timing/report_spec.rb
|
194
|
+
- spec/rake/funnel/support/trace_spec.rb
|
190
195
|
- spec/rake/funnel/support/version_info_spec.rb
|
191
196
|
- spec/rake/funnel/support/which_spec.rb
|
192
197
|
- spec/rake/funnel/support/zipper_spec.rb
|
@@ -257,6 +262,9 @@ test_files:
|
|
257
262
|
- spec/rake/funnel/support/msbuild/build_tool_spec.rb
|
258
263
|
- spec/rake/funnel/support/msdeploy/registry_patch_spec.rb
|
259
264
|
- spec/rake/funnel/support/patch_spec.rb
|
265
|
+
- spec/rake/funnel/support/specs_remover/multiple projects/Sample1.csproj
|
266
|
+
- spec/rake/funnel/support/specs_remover/multiple projects/Sample2.csproj
|
267
|
+
- spec/rake/funnel/support/specs_remover/multiple projects/paket.references
|
260
268
|
- spec/rake/funnel/support/specs_remover/project-specific paket.references/Sample.csproj
|
261
269
|
- spec/rake/funnel/support/specs_remover/project-specific paket.references/Sample.csproj.paket.references
|
262
270
|
- spec/rake/funnel/support/specs_remover/project-specific paket.references/paket.references
|
@@ -272,6 +280,7 @@ test_files:
|
|
272
280
|
- spec/rake/funnel/support/specs_remover_spec.rb
|
273
281
|
- spec/rake/funnel/support/template_engine_spec.rb
|
274
282
|
- spec/rake/funnel/support/timing/report_spec.rb
|
283
|
+
- spec/rake/funnel/support/trace_spec.rb
|
275
284
|
- spec/rake/funnel/support/version_info_spec.rb
|
276
285
|
- spec/rake/funnel/support/which_spec.rb
|
277
286
|
- spec/rake/funnel/support/zipper_spec.rb
|