rake-funnel 0.3.2.pre → 0.4.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/.rspec +2 -2
- data/Gemfile +4 -0
- data/README.md +2 -2
- data/lib/rake/funnel/ambiguous_file_error.rb +31 -29
- data/lib/rake/funnel/execution_error.rb +28 -26
- data/lib/rake/funnel/extensions/case/camel_case.rb +24 -19
- data/lib/rake/funnel/extensions/case/pascal_case.rb +24 -19
- data/lib/rake/funnel/extensions/case.rb +3 -3
- data/lib/rake/funnel/extensions/common_path.rb +60 -52
- data/lib/rake/funnel/extensions/disable_colors.rb +33 -27
- data/lib/rake/funnel/extensions/rexml.rb +27 -23
- data/lib/rake/funnel/extensions/shell.rb +92 -56
- data/lib/rake/funnel/extensions/windows_path.rb +15 -11
- data/lib/rake/funnel/framework.rb +11 -16
- data/lib/rake/funnel/integration/progress_report.rb +72 -70
- data/lib/rake/funnel/integration/sync_output.rb +12 -8
- data/lib/rake/funnel/integration/teamcity/nunit_plugin.rb +61 -55
- data/lib/rake/funnel/integration/teamcity/progress_report.rb +39 -33
- data/lib/rake/funnel/integration/teamcity/service_messages.rb +46 -40
- data/lib/rake/funnel/integration/teamcity/teamcity.rb +19 -15
- data/lib/rake/funnel/integration/teamcity.rb +3 -5
- data/lib/rake/funnel/support/argument_mapper/key_value_pair.rb +16 -10
- data/lib/rake/funnel/support/argument_mapper/styles/default.rb +39 -31
- data/lib/rake/funnel/support/argument_mapper/styles/msbuild.rb +41 -33
- data/lib/rake/funnel/support/argument_mapper/styles/msdeploy.rb +55 -47
- data/lib/rake/funnel/support/argument_mapper/styles/nunit.rb +41 -33
- data/lib/rake/funnel/support/argument_mapper/styles.rb +3 -5
- data/lib/rake/funnel/support/argument_mapper/switch.rb +16 -10
- data/lib/rake/funnel/support/argument_mapper/value.rb +16 -10
- data/lib/rake/funnel/support/assembly_version/from_version_files.rb +39 -35
- data/lib/rake/funnel/support/assembly_version/languages/cs +5 -5
- data/lib/rake/funnel/support/assembly_version/languages/fs +12 -12
- data/lib/rake/funnel/support/assembly_version/languages/vb +5 -5
- data/lib/rake/funnel/support/assembly_version_writer.rb +56 -52
- data/lib/rake/funnel/support/binary_version_reader.rb +37 -32
- data/lib/rake/funnel/support/copier.rb +31 -27
- data/lib/rake/funnel/support/environments/loader.rb +46 -40
- data/lib/rake/funnel/support/environments.rb +3 -3
- data/lib/rake/funnel/support/internal/finder.rb +55 -51
- data/lib/rake/funnel/support/internal/instantiate_symbol.rb +38 -34
- data/lib/rake/funnel/support/mapper.rb +57 -53
- data/lib/rake/funnel/support/mono.rb +21 -17
- data/lib/rake/funnel/support/msbuild/build_tool.rb +30 -24
- data/lib/rake/funnel/support/msbuild.rb +3 -3
- data/lib/rake/funnel/support/msdeploy/registry_patch.rb +90 -84
- data/lib/rake/funnel/support/msdeploy.rb +3 -3
- data/lib/rake/funnel/support/patch.rb +41 -37
- data/lib/rake/funnel/support/specs_remover.rb +66 -62
- data/lib/rake/funnel/support/template_engine.rb +30 -26
- data/lib/rake/funnel/support/timing/report.rb +95 -89
- data/lib/rake/funnel/support/timing/statistics.rb +32 -26
- data/lib/rake/funnel/support/timing.rb +3 -3
- data/lib/rake/funnel/support/version_info.rb +103 -72
- data/lib/rake/funnel/support/which.rb +19 -15
- data/lib/rake/funnel/support/zipper.rb +53 -49
- data/lib/rake/funnel/tasks/assembly_version.rb +44 -40
- data/lib/rake/funnel/tasks/bin_path.rb +45 -41
- data/lib/rake/funnel/tasks/copy.rb +43 -39
- data/lib/rake/funnel/tasks/environments.rb +89 -89
- data/lib/rake/funnel/tasks/msbuild.rb +55 -51
- data/lib/rake/funnel/tasks/msdeploy.rb +54 -50
- data/lib/rake/funnel/tasks/nunit.rb +52 -48
- data/lib/rake/funnel/tasks/paket.rb +51 -47
- data/lib/rake/funnel/tasks/quick_template.rb +53 -49
- data/lib/rake/funnel/tasks/side_by_side_specs.rb +41 -37
- data/lib/rake/funnel/tasks/timing.rb +108 -104
- data/lib/rake/funnel/tasks/zip.rb +46 -42
- data/lib/rake/funnel/version.rb +1 -1
- data/lib/rake/funnel.rb +7 -7
- data/rake-funnel.gemspec +12 -3
- data/spec/rake/funnel/execution_error_spec.rb +67 -67
- data/spec/rake/funnel/extensions/case/camel_case_spec.rb +17 -17
- data/spec/rake/funnel/extensions/case/pascal_case_spec.rb +17 -17
- data/spec/rake/funnel/extensions/common_path_spec.rb +56 -56
- data/spec/rake/funnel/extensions/disable_colors_spec.rb +33 -33
- data/spec/rake/funnel/extensions/rexml_spec.rb +20 -20
- data/spec/rake/funnel/extensions/shell_spec.rb +237 -237
- data/spec/rake/funnel/extensions/windows_path_spec.rb +5 -5
- data/spec/rake/funnel/integration/progress_report_spec.rb +149 -149
- data/spec/rake/funnel/integration/sync_output_spec.rb +16 -16
- data/spec/rake/funnel/integration/teamcity/nunit_plugin_spec.rb +110 -110
- data/spec/rake/funnel/integration/teamcity/progress_report_spec.rb +174 -174
- data/spec/rake/funnel/integration/teamcity/service_messages_spec.rb +136 -136
- data/spec/rake/funnel/integration/teamcity/teamcity_spec.rb +34 -34
- data/spec/rake/funnel/support/argument_mapper/styles/msdeploy_spec.rb +222 -222
- data/spec/rake/funnel/support/argument_mapper/styles/nunit_spec.rb +25 -25
- data/spec/rake/funnel/support/argument_mapper/styles/styles_spec.rb +214 -214
- data/spec/rake/funnel/support/assembly_version/from_version_files_spec.rb +66 -61
- data/spec/rake/funnel/support/assembly_version_writer_spec.rb +140 -140
- data/spec/rake/funnel/support/binary_version_reader_spec.rb +29 -29
- data/spec/rake/funnel/support/copier_spec.rb +58 -58
- data/spec/rake/funnel/support/environments/loader_spec.rb +143 -143
- data/spec/rake/funnel/support/internal/finder_spec.rb +229 -229
- data/spec/rake/funnel/support/internal/instantiate_symbol_spec.rb +182 -183
- data/spec/rake/funnel/support/mapper_spec.rb +87 -87
- data/spec/rake/funnel/support/mono_spec.rb +57 -57
- data/spec/rake/funnel/support/msbuild/build_tool_spec.rb +21 -21
- data/spec/rake/funnel/support/msdeploy/registry_patch_spec.rb +139 -139
- data/spec/rake/funnel/support/patch_spec.rb +108 -108
- data/spec/rake/funnel/support/specs_remover/Sample.csproj +28 -28
- data/spec/rake/funnel/support/specs_remover_spec.rb +116 -116
- data/spec/rake/funnel/support/template_engine_spec.rb +65 -65
- data/spec/rake/funnel/support/timing/report_spec.rb +129 -129
- data/spec/rake/funnel/support/version_info_spec.rb +333 -228
- data/spec/rake/funnel/support/which_spec.rb +65 -65
- data/spec/rake/funnel/support/zipper_spec.rb +77 -77
- data/spec/rake/funnel/tasks/assembly_version_spec.rb +45 -45
- data/spec/rake/funnel/tasks/bin_path_spec.rb +52 -52
- data/spec/rake/funnel/tasks/copy_spec.rb +44 -44
- data/spec/rake/funnel/tasks/environments_spec.rb +249 -247
- data/spec/rake/funnel/tasks/msbuild_spec.rb +91 -91
- data/spec/rake/funnel/tasks/msdeploy_spec.rb +220 -220
- data/spec/rake/funnel/tasks/nunit_spec.rb +74 -74
- data/spec/rake/funnel/tasks/paket_spec.rb +140 -142
- data/spec/rake/funnel/tasks/quick_template_spec.rb +62 -62
- data/spec/rake/funnel/tasks/side_by_side_specs_spec.rb +58 -58
- data/spec/rake/funnel/tasks/timing_spec.rb +133 -133
- data/spec/rake/funnel/tasks/zip_spec.rb +50 -50
- data/spec/spec_helper.rb +43 -33
- metadata +2 -3
- data/lib/rake/funnel/support/side_by_side_specs.rb +0 -3
@@ -1,11 +1,15 @@
|
|
1
|
-
module Rake
|
2
|
-
module
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
end
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
1
|
+
module Rake
|
2
|
+
module Funnel
|
3
|
+
module Extensions
|
4
|
+
module WindowsPath
|
5
|
+
def to_windows_path
|
6
|
+
gsub(%r|/|, '\\')
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class String
|
14
|
+
include Rake::Funnel::Extensions::WindowsPath
|
15
|
+
end
|
@@ -1,16 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
].each do |path|
|
13
|
-
Dir.glob(path).sort.each do |p|
|
14
|
-
require p
|
15
|
-
end
|
16
|
-
end
|
1
|
+
[
|
2
|
+
"#{File.dirname(__FILE__)}/*.rb",
|
3
|
+
"#{File.dirname(__FILE__)}/extensions/*.rb",
|
4
|
+
"#{File.dirname(__FILE__)}/support/internal/*.rb",
|
5
|
+
"#{File.dirname(__FILE__)}/support/*.rb",
|
6
|
+
"#{File.dirname(__FILE__)}/*/*.rb"
|
7
|
+
].each do |path|
|
8
|
+
Dir.glob(path).sort.each do |p|
|
9
|
+
require p
|
10
|
+
end
|
11
|
+
end
|
@@ -1,70 +1,72 @@
|
|
1
|
-
require 'rake'
|
2
|
-
|
3
|
-
module Rake
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
end
|
1
|
+
require 'rake'
|
2
|
+
|
3
|
+
module Rake
|
4
|
+
module Funnel
|
5
|
+
module Integration
|
6
|
+
class ProgressReport
|
7
|
+
attr_reader :starting, :finished
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
task_starting do |task, _args|
|
11
|
+
puts "\n[#{task.name}]" unless Rake::Funnel::Integration::TeamCity.running?
|
12
|
+
end
|
13
|
+
|
14
|
+
yield self if block_given?
|
15
|
+
|
16
|
+
patch.apply!
|
17
|
+
end
|
18
|
+
|
19
|
+
def task_starting(&block)
|
20
|
+
@starting = block
|
21
|
+
end
|
22
|
+
|
23
|
+
def task_finished(&block)
|
24
|
+
@finished = block
|
25
|
+
end
|
26
|
+
|
27
|
+
def disable!
|
28
|
+
patch.revert!
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
def patch
|
33
|
+
@patch ||= create_patch
|
34
|
+
end
|
35
|
+
|
36
|
+
def create_patch
|
37
|
+
Rake::Funnel::Support::Patch.new(self) do |p|
|
38
|
+
p.setup do |context|
|
39
|
+
Rake::Task.class_eval do
|
40
|
+
old_execute = instance_method(:execute)
|
41
|
+
|
42
|
+
define_method(:execute) do |args|
|
43
|
+
context.starting.call(self, args) if context.starting
|
44
|
+
|
45
|
+
error = nil
|
46
|
+
begin
|
47
|
+
old_execute.bind(self).call(args)
|
48
|
+
rescue => e
|
49
|
+
error = e
|
50
|
+
ensure
|
51
|
+
context.finished.call(self, args, error) if context.finished
|
52
|
+
fail error if error
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
old_execute
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
p.reset do |memo|
|
61
|
+
Rake::Task.class_eval do
|
62
|
+
define_method(:execute) do |args|
|
63
|
+
memo.bind(self).call(args)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -1,8 +1,12 @@
|
|
1
|
-
module Rake
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
end
|
1
|
+
module Rake
|
2
|
+
module Funnel
|
3
|
+
module Integration
|
4
|
+
class SyncOutput
|
5
|
+
def initialize
|
6
|
+
$stdout.sync = true
|
7
|
+
$stderr.sync = true
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -1,55 +1,61 @@
|
|
1
|
-
module Rake
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
end
|
1
|
+
module Rake
|
2
|
+
module Funnel
|
3
|
+
module Integration
|
4
|
+
module TeamCity
|
5
|
+
class NUnitPlugin
|
6
|
+
ENV_VAR = 'teamcity.dotnet.nunitaddin'
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def setup(nunit_executable)
|
10
|
+
addins = get_addin_dir(ENV[ENV_VAR]) || return
|
11
|
+
nunit, version = read_version(nunit_executable) || return
|
12
|
+
|
13
|
+
addin_files = find_teamcity_addins(addins, version) || return
|
14
|
+
|
15
|
+
copy_addin_files(nunit, addin_files, version)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
def get_addin_dir(source)
|
20
|
+
return nil unless source
|
21
|
+
|
22
|
+
File.expand_path(source)
|
23
|
+
end
|
24
|
+
|
25
|
+
def read_version(executable)
|
26
|
+
nunit = Rake::Funnel::Support::Which.which(executable) || return
|
27
|
+
version = Rake::Funnel::Support::BinaryVersionReader.read_from(nunit)
|
28
|
+
|
29
|
+
unless version.file_version
|
30
|
+
Rake.rake_output_message("Could read version from NUnit executable in #{nunit}")
|
31
|
+
return
|
32
|
+
end
|
33
|
+
|
34
|
+
[nunit, version.file_version.split('.').take(3).join('.')]
|
35
|
+
end
|
36
|
+
|
37
|
+
def find_teamcity_addins(addins, version)
|
38
|
+
addin_files = Dir.glob("#{addins}-#{version}.*")
|
39
|
+
|
40
|
+
if addin_files.none?
|
41
|
+
Rake.rake_output_message("Could not find TeamCity NUnit addin for version #{version} in #{addins}")
|
42
|
+
return
|
43
|
+
end
|
44
|
+
|
45
|
+
addin_files
|
46
|
+
end
|
47
|
+
|
48
|
+
def copy_addin_files(nunit, addin_files, version)
|
49
|
+
Rake.rake_output_message("Installing TeamCity NUnit addin for version #{version} in #{nunit}")
|
50
|
+
|
51
|
+
destination = File.join(File.dirname(nunit), 'addins')
|
52
|
+
|
53
|
+
RakeFileUtils.mkdir_p(destination)
|
54
|
+
RakeFileUtils.cp(addin_files, destination, preserve: true)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -1,33 +1,39 @@
|
|
1
|
-
require 'rake'
|
2
|
-
|
3
|
-
module Rake
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
end
|
1
|
+
require 'rake'
|
2
|
+
|
3
|
+
module Rake
|
4
|
+
module Funnel
|
5
|
+
module Integration
|
6
|
+
module TeamCity
|
7
|
+
class ProgressReport < Rake::Funnel::Integration::ProgressReport
|
8
|
+
include Rake::Funnel::Integration
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
super do
|
12
|
+
task_starting do |task, _args|
|
13
|
+
next unless TeamCity.running?
|
14
|
+
|
15
|
+
unless TeamCity.rake_runner?
|
16
|
+
ServiceMessages.block_opened(name: task.name)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
task_finished do |task, _args, error|
|
21
|
+
next unless TeamCity.running?
|
22
|
+
|
23
|
+
if error.respond_to?(:inner_exception)
|
24
|
+
error = error.inner_exception
|
25
|
+
end
|
26
|
+
|
27
|
+
ServiceMessages.build_problem(description: error.message[0..4000 - 1]) if error
|
28
|
+
|
29
|
+
next if Rake::Funnel::Integration::TeamCity.rake_runner?
|
30
|
+
|
31
|
+
ServiceMessages.block_closed(name: task.name)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -1,40 +1,46 @@
|
|
1
|
-
module Rake
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
end
|
1
|
+
module Rake
|
2
|
+
module Funnel
|
3
|
+
module Integration
|
4
|
+
module TeamCity
|
5
|
+
class ServiceMessages
|
6
|
+
class << self
|
7
|
+
def method_missing(method, *args, &_block)
|
8
|
+
return unless Rake::Funnel::Integration::TeamCity.running?
|
9
|
+
|
10
|
+
message_name = method.camelize
|
11
|
+
publish message_name, args[0]
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def publish(message_name, args)
|
16
|
+
args = [message_name] << escaped_array_of(args)
|
17
|
+
args = args.flatten.reject(&:nil?)
|
18
|
+
|
19
|
+
puts "##teamcity[#{args.join(' ')}]"
|
20
|
+
end
|
21
|
+
|
22
|
+
def escape(string)
|
23
|
+
string
|
24
|
+
.gsub(/\|/, '||')
|
25
|
+
.gsub(/'/, "|'")
|
26
|
+
.gsub(/\r/, '|r')
|
27
|
+
.gsub(/\n/, '|n')
|
28
|
+
.gsub(/\u0085/, '|x')
|
29
|
+
.gsub(/\u2028/, '|l')
|
30
|
+
.gsub(/\u2029/, '|p')
|
31
|
+
.gsub(/\[/, '|[')
|
32
|
+
.gsub(/\]/, '|]')
|
33
|
+
end
|
34
|
+
|
35
|
+
def escaped_array_of(args)
|
36
|
+
return [] if args.nil?
|
37
|
+
|
38
|
+
return "'#{escape args}'" unless args.is_a?(Hash)
|
39
|
+
args.map { |key, value| "#{key.camelize}='#{escape value.to_s}'" }
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -1,15 +1,19 @@
|
|
1
|
-
module Rake
|
2
|
-
module
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
1
|
+
module Rake
|
2
|
+
module Funnel
|
3
|
+
module Integration
|
4
|
+
module TeamCity
|
5
|
+
ENV_VAR = 'TEAMCITY_PROJECT_NAME'
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def running?
|
9
|
+
ENV.include?(ENV_VAR)
|
10
|
+
end
|
11
|
+
|
12
|
+
def rake_runner?
|
13
|
+
running? && Object.const_defined?('Rake') && Rake.const_defined?('TeamCityApplication')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -1,10 +1,16 @@
|
|
1
|
-
module Rake
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
1
|
+
module Rake
|
2
|
+
module Funnel
|
3
|
+
module Support
|
4
|
+
module ArgumentMapper
|
5
|
+
class KeyValuePair
|
6
|
+
attr_reader :key, :value
|
7
|
+
|
8
|
+
def initialize(key, value)
|
9
|
+
@key = key
|
10
|
+
@value = value
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -1,31 +1,39 @@
|
|
1
|
-
module Rake
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
1
|
+
module Rake
|
2
|
+
module Funnel
|
3
|
+
module Support
|
4
|
+
module ArgumentMapper
|
5
|
+
module Styles
|
6
|
+
class Default
|
7
|
+
attr_reader :prefix, :value_separator
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@prefix = '/'
|
11
|
+
@value_separator = ','
|
12
|
+
end
|
13
|
+
|
14
|
+
def generate_from(model)
|
15
|
+
model.map { |switch|
|
16
|
+
switch.values.flatten.map { |value|
|
17
|
+
[top_level(switch), nested(value)].reject(&:empty?)
|
18
|
+
}
|
19
|
+
}.flatten(2)
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
def top_level(switch)
|
24
|
+
[prefix, switch.switch]
|
25
|
+
end
|
26
|
+
|
27
|
+
def nested(value)
|
28
|
+
res = []
|
29
|
+
res << value.key
|
30
|
+
res << value_separator unless value.key.nil? || value.value.nil?
|
31
|
+
res << value.value
|
32
|
+
res.compact
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|