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