rake-funnel 0.0.6.pre → 0.1.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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rake/funnel/extensions/{camel_case.rb → case/camel_case.rb} +0 -0
  3. data/lib/rake/funnel/extensions/case/pascal_case.rb +19 -0
  4. data/lib/rake/funnel/extensions/case.rb +3 -0
  5. data/lib/rake/funnel/framework.rb +1 -0
  6. data/lib/rake/funnel/support/argument_mapper/key_value_pair.rb +10 -0
  7. data/lib/rake/funnel/support/{mapper_styles → argument_mapper/styles}/default.rb +1 -1
  8. data/lib/rake/funnel/support/{mapper_styles → argument_mapper/styles}/msbuild.rb +1 -1
  9. data/lib/rake/funnel/support/{mapper_styles → argument_mapper/styles}/msdeploy.rb +1 -1
  10. data/lib/rake/funnel/support/{mapper_styles → argument_mapper/styles}/nunit.rb +1 -1
  11. data/lib/rake/funnel/support/argument_mapper/styles.rb +5 -0
  12. data/lib/rake/funnel/support/argument_mapper/switch.rb +10 -0
  13. data/lib/rake/funnel/support/argument_mapper/value.rb +10 -0
  14. data/lib/rake/funnel/support/assembly_version/from_version_files.rb +35 -0
  15. data/lib/rake/funnel/support/assembly_version/languages/cs +5 -0
  16. data/lib/rake/funnel/support/assembly_version/languages/fs +12 -0
  17. data/lib/rake/funnel/support/assembly_version/languages/vb +5 -0
  18. data/lib/rake/funnel/support/assembly_version_writer.rb +52 -0
  19. data/lib/rake/funnel/{tasks/environments_support → support/environments}/loader.rb +8 -11
  20. data/lib/rake/funnel/support/environments.rb +3 -0
  21. data/lib/rake/funnel/support/{finder.rb → internal/finder.rb} +0 -0
  22. data/lib/rake/funnel/support/internal/instantiate_symbol.rb +34 -0
  23. data/lib/rake/funnel/support/mapper.rb +7 -35
  24. data/lib/rake/funnel/{tasks/msbuild_support → support/msbuild}/build_tool.rb +1 -1
  25. data/lib/rake/funnel/support/msbuild.rb +3 -0
  26. data/lib/rake/funnel/{tasks/msdeploy_support → support/msdeploy}/registry_patch.rb +1 -1
  27. data/lib/rake/funnel/support/msdeploy.rb +3 -0
  28. data/lib/rake/funnel/{tasks/side_by_side_specs_support → support/side_by_side_specs}/remover.rb +1 -1
  29. data/lib/rake/funnel/support/side_by_side_specs.rb +3 -0
  30. data/lib/rake/funnel/{tasks/timing_support → support/timing}/report.rb +1 -1
  31. data/lib/rake/funnel/{tasks/timing_support → support/timing}/statistics.rb +1 -1
  32. data/lib/rake/funnel/support/timing.rb +3 -0
  33. data/lib/rake/funnel/support/{version.rb → version_info.rb} +25 -8
  34. data/lib/rake/funnel/tasks/assembly_version.rb +34 -0
  35. data/lib/rake/funnel/tasks/bin_path.rb +3 -3
  36. data/lib/rake/funnel/tasks/copy.rb +3 -1
  37. data/lib/rake/funnel/tasks/environments.rb +4 -2
  38. data/lib/rake/funnel/tasks/msbuild.rb +6 -7
  39. data/lib/rake/funnel/tasks/msdeploy.rb +5 -6
  40. data/lib/rake/funnel/tasks/nunit.rb +5 -3
  41. data/lib/rake/funnel/tasks/paket.rb +4 -2
  42. data/lib/rake/funnel/tasks/quick_template.rb +3 -1
  43. data/lib/rake/funnel/tasks/side_by_side_specs.rb +3 -5
  44. data/lib/rake/funnel/tasks/timing.rb +5 -8
  45. data/lib/rake/funnel/tasks/zip.rb +3 -1
  46. data/lib/rake/funnel/version.rb +1 -1
  47. data/spec/rake/funnel/extensions/{camel_case_spec.rb → case/camel_case_spec.rb} +0 -0
  48. data/spec/rake/funnel/extensions/case/pascal_case_spec.rb +17 -0
  49. data/spec/rake/funnel/support/{mapper_styles → argument_mapper/styles}/msdeploy_spec.rb +1 -1
  50. data/spec/rake/funnel/support/{mapper_styles → argument_mapper/styles}/nunit_spec.rb +1 -1
  51. data/spec/rake/funnel/support/{mapper_styles → argument_mapper/styles}/styles_spec.rb +4 -4
  52. data/spec/rake/funnel/support/assembly_version/from_version_files_spec.rb +61 -0
  53. data/spec/rake/funnel/support/assembly_version_writer_spec.rb +140 -0
  54. data/spec/rake/funnel/{tasks/environments_support → support/environments}/loader_spec.rb +13 -3
  55. data/spec/rake/funnel/support/{finder_spec.rb → internal/finder_spec.rb} +7 -6
  56. data/spec/rake/funnel/support/internal/instantiate_symbol_spec.rb +183 -0
  57. data/spec/rake/funnel/support/mapper_spec.rb +2 -2
  58. data/spec/rake/funnel/{tasks/msbuild_support → support/msbuild}/build_tool_spec.rb +1 -1
  59. data/spec/rake/funnel/{tasks/msdeploy_support → support/msdeploy}/registry_patch_spec.rb +3 -3
  60. data/spec/rake/funnel/{tasks/side_by_side_specs_support → support/side_by_side_specs}/example/FooCode.cs +0 -0
  61. data/spec/rake/funnel/{tasks/side_by_side_specs_support → support/side_by_side_specs}/example/FooSpecs.cs +0 -0
  62. data/spec/rake/funnel/{tasks/side_by_side_specs_support → support/side_by_side_specs}/example/Sample.csproj +0 -0
  63. data/spec/rake/funnel/{tasks/side_by_side_specs_support → support/side_by_side_specs}/example/Specs.cs +0 -0
  64. data/spec/rake/funnel/{tasks/side_by_side_specs_support → support/side_by_side_specs}/example/subdir/BarCode.cs +0 -0
  65. data/spec/rake/funnel/{tasks/side_by_side_specs_support → support/side_by_side_specs}/example/subdir/BarSpecs.cs +0 -0
  66. data/spec/rake/funnel/{tasks/side_by_side_specs_support → support/side_by_side_specs}/remover_spec.rb +1 -1
  67. data/spec/rake/funnel/support/template_engine_spec.rb +2 -2
  68. data/spec/rake/funnel/{tasks/timing_support → support/timing}/report_spec.rb +2 -2
  69. data/spec/rake/funnel/support/version_info_spec.rb +228 -0
  70. data/spec/rake/funnel/tasks/assembly_version_spec.rb +54 -0
  71. data/spec/rake/funnel/tasks/bin_path_spec.rb +4 -4
  72. data/spec/rake/funnel/tasks/copy_spec.rb +1 -1
  73. data/spec/rake/funnel/tasks/environments_spec.rb +82 -26
  74. data/spec/rake/funnel/tasks/msbuild_spec.rb +1 -1
  75. data/spec/rake/funnel/tasks/msdeploy_spec.rb +1 -1
  76. data/spec/rake/funnel/tasks/paket_spec.rb +2 -2
  77. data/spec/rake/funnel/tasks/side_by_side_specs_spec.rb +4 -3
  78. data/spec/rake/funnel/tasks/zip_spec.rb +1 -1
  79. metadata +77 -49
  80. data/spec/rake/funnel/support/version_spec.rb +0 -145
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1c5f4731ba432fe73f8c1f716f708347c4acbb13
4
- data.tar.gz: 7b7bde023095c65f429fb7329bcb7648bdbd160a
3
+ metadata.gz: 4bd0e3285c6c760070f068f6e37f30bb327594c0
4
+ data.tar.gz: 7826b86b0515d328267aa271249014916ca1a8f2
5
5
  SHA512:
6
- metadata.gz: 3e18e39c549ef30274224c56607d0d14ff09ede32ce913b3c9625700cfedbbbdca26fca2a267e3ec8605e3372fd44c00cc20e62cbe27128d2e9e1b185d80e478
7
- data.tar.gz: eebc2eb577d4d9b4225dc386a9e2ac31b3d48d2286f7f29d110ccb0a8e43823bdcd593d85c1000c23bdff8c81de48c25bc250ccd6e4fca82759dc358195841b3
6
+ metadata.gz: 0b1cd945436df9fda43190a41c2975b0101c1ec4223ac165aa67247184bf92192ca5ce970da0f53540753a94ff7fc39afe1c1f8dafae65a42012f2249866dd0b
7
+ data.tar.gz: dae7713e1bf4c1fb22423969dd70b8c9fe2bdb91989bbf56d3faeb4f5e03495902153a7de42c4e53958c2e428472dab40cf22b435232c798ab0a311d5bf01ff4
@@ -0,0 +1,19 @@
1
+ module Rake::Funnel::Extensions
2
+ module PascalCase
3
+ def pascalize
4
+ self
5
+ .to_s
6
+ .split('_')
7
+ .inject([]) { |buffer, e| buffer.push(e.slice(0, 1).capitalize + e.slice(1..-1)) }
8
+ .join
9
+ end
10
+ end
11
+ end
12
+
13
+ class String
14
+ include Rake::Funnel::Extensions::PascalCase
15
+ end
16
+
17
+ class Symbol
18
+ include Rake::Funnel::Extensions::PascalCase
19
+ end
@@ -0,0 +1,3 @@
1
+ Dir["#{File.dirname(__FILE__)}/case/*.rb"].each do |path|
2
+ require path
3
+ end
@@ -6,6 +6,7 @@ module Rake::Funnel::Tasks; end
6
6
  [
7
7
  "#{File.dirname(__FILE__)}/*.rb",
8
8
  "#{File.dirname(__FILE__)}/extensions/*.rb",
9
+ "#{File.dirname(__FILE__)}/support/internal/*.rb",
9
10
  "#{File.dirname(__FILE__)}/support/*.rb",
10
11
  "#{File.dirname(__FILE__)}/*/*.rb",
11
12
  ].each do |path|
@@ -0,0 +1,10 @@
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,4 +1,4 @@
1
- module Rake::Funnel::Support::MapperStyles
1
+ module Rake::Funnel::Support::ArgumentMapper::Styles
2
2
  class Default
3
3
  attr_reader :prefix, :value_separator
4
4
 
@@ -1,4 +1,4 @@
1
- module Rake::Funnel::Support::MapperStyles
1
+ module Rake::Funnel::Support::ArgumentMapper::Styles
2
2
  class MSBuild
3
3
  attr_reader :prefix, :separator, :value_separator
4
4
 
@@ -1,4 +1,4 @@
1
- module Rake::Funnel::Support::MapperStyles
1
+ module Rake::Funnel::Support::ArgumentMapper::Styles
2
2
  class MSDeploy
3
3
  attr_reader :prefix, :separator, :value_separator, :value_list_separator
4
4
 
@@ -1,4 +1,4 @@
1
- module Rake::Funnel::Support::MapperStyles
1
+ module Rake::Funnel::Support::ArgumentMapper::Styles
2
2
  class NUnit
3
3
  attr_reader :prefix, :separator, :value_separator
4
4
 
@@ -0,0 +1,5 @@
1
+ module Rake::Funnel::Support::ArgumentMapper; end
2
+
3
+ Dir[File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), '*.rb')].each do |path|
4
+ require path
5
+ end
@@ -0,0 +1,10 @@
1
+ module Rake::Funnel::Support::ArgumentMapper
2
+ class Switch
3
+ attr_reader :switch, :values
4
+
5
+ def initialize(switch, values)
6
+ @values = values
7
+ @switch = switch
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Rake::Funnel::Support::ArgumentMapper
2
+ class Value
3
+ attr_reader :key, :value
4
+
5
+ def initialize(value)
6
+ @key = nil
7
+ @value = value
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,35 @@
1
+ module Rake::Funnel::Support::AssemblyVersion
2
+ class FromVersionFiles
3
+ include Rake::Funnel::Support
4
+ include Enumerable
5
+
6
+ attr_reader :search_pattern, :build_number, :sha
7
+
8
+ def initialize(args = {})
9
+ @search_pattern = args[:search_pattern] || %w(**/VERSION)
10
+ @build_number = args[:build_number]
11
+ @sha = args[:sha]
12
+ end
13
+
14
+ def each
15
+ block_given? or return enum_for(__method__)
16
+
17
+ files.each do |file|
18
+ Rake.rake_output_message("Reading #{file}")
19
+
20
+ version_info = VersionInfo.parse({
21
+ version: VersionInfo.read_version_from(file),
22
+ build_number: build_number,
23
+ sha: sha
24
+ })
25
+
26
+ yield({ source: file, version_info: version_info })
27
+ end
28
+ end
29
+
30
+ private
31
+ def files
32
+ Finder.new(search_pattern, self, 'No version files found.').all_or_default
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,5 @@
1
+ using System.Reflection;
2
+
3
+ <% version_info.each do |key, value| %>
4
+ [assembly: <%= key.pascalize %>("<%= value %>")]
5
+ <% end %>
@@ -0,0 +1,12 @@
1
+ namespace System
2
+ open System.Reflection
3
+
4
+ <% version_info.each do |key, value| %>
5
+ [<assembly: <%= key.pascalize %>("<%= value %>")>]
6
+ <% end %>
7
+ do ()
8
+
9
+ <% if version_info.assembly_file_version %>
10
+ module internal AssemblyVersionInformation =
11
+ let [<Literal>] Version = "<%= version_info.assembly_file_version %>"
12
+ <% end %>
@@ -0,0 +1,5 @@
1
+ Imports System.Reflection
2
+
3
+ <% version_info.each do |key, value| %>
4
+ <Assembly: <%= key.pascalize %>("<%= value %>")>
5
+ <% end %>
@@ -0,0 +1,52 @@
1
+ require 'erb'
2
+
3
+ Dir[File.join(File.dirname(__FILE__), 'assembly_version', '*.rb')].each do |path|
4
+ require path
5
+ end
6
+
7
+ module Rake::Funnel::Support
8
+ class AssemblyVersionWriter
9
+ include Rake::Funnel::Support::InstantiateSymbol
10
+ instantiate AssemblyVersion
11
+
12
+ def initialize(type = :FromVersionFiles, args = {})
13
+ @type = create(type, args)
14
+ end
15
+
16
+ def write(target_path, languages = [])
17
+ @type.each do |info|
18
+ source = info[:source]
19
+ version_info = info[:version_info]
20
+
21
+ [languages].flatten.each do |language|
22
+ target = target_path.call(language, version_info, source)
23
+
24
+ contents = evaluate_erb(language, version_info, target)
25
+
26
+ Rake.rake_output_message("Writing #{target}")
27
+ File.write(target, contents)
28
+ end
29
+ end
30
+ end
31
+
32
+ private
33
+ def evaluate_erb(language, version_info, target)
34
+ template = template_for(language)
35
+
36
+ render = ERB.new(template, nil, '%<>')
37
+ render.filename = target
38
+ render.result(get_binding(version_info))
39
+ end
40
+
41
+ def template_for(language)
42
+ template = File.join(File.dirname(__FILE__), 'assembly_version', 'languages', language.to_s)
43
+ raise "Language is not supported: #{language}" unless File.readable?(template)
44
+
45
+ File.read(template)
46
+ end
47
+
48
+ def get_binding(version_info)
49
+ binding
50
+ end
51
+ end
52
+ end
@@ -1,11 +1,11 @@
1
1
  require 'configatron'
2
2
  require 'yaml'
3
3
 
4
- module Rake::Funnel::Tasks::EnvironmentsSupport
4
+ module Rake::Funnel::Support::Environments
5
5
  class Loader
6
6
  class << self
7
- def load_configuration(config, store = configatron)
8
- log("Configuring for #{config[:name]}")
7
+ def load_configuration(config, store = configatron, customizer = nil)
8
+ Rake.rake_output_message("Configuring for #{config[:name]}")
9
9
  store.unlock!
10
10
  store.reset!
11
11
 
@@ -13,7 +13,7 @@ module Rake::Funnel::Tasks::EnvironmentsSupport
13
13
 
14
14
  operation = 'Loading'
15
15
  config.fetch(:config_files, []).each do |file|
16
- log("#{operation} #{file}")
16
+ Rake.rake_output_message("#{operation} #{file}")
17
17
  operation = 'Merging'
18
18
 
19
19
  yaml = File.read(file)
@@ -22,10 +22,12 @@ module Rake::Funnel::Tasks::EnvironmentsSupport
22
22
  store.configure_from_hash(yaml)
23
23
  end
24
24
 
25
+ customizer.call(store) if customizer && customizer.respond_to?(:call)
26
+
25
27
  store.lock!
26
28
 
27
- log('')
28
- log(store.inspect)
29
+ Rake.rake_output_message('')
30
+ Rake.rake_output_message(store.inspect)
29
31
  end
30
32
 
31
33
  def evaluate_erb(yaml, filename)
@@ -33,11 +35,6 @@ module Rake::Funnel::Tasks::EnvironmentsSupport
33
35
  render.filename = filename
34
36
  render.result
35
37
  end
36
-
37
- private
38
- def log(message)
39
- Rake.rake_output_message(message)
40
- end
41
38
  end
42
39
  end
43
40
  end
@@ -0,0 +1,3 @@
1
+ Dir[File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), '*.rb')].each do |path|
2
+ require path
3
+ end
@@ -0,0 +1,34 @@
1
+ module Rake::Funnel::Support
2
+ module InstantiateSymbol
3
+ def self.included(klass)
4
+ klass.extend(ClassMethods)
5
+ klass.send(:instantiate, klass)
6
+ end
7
+
8
+ module ClassMethods
9
+ attr_reader :module
10
+
11
+ private
12
+ def instantiate(mod)
13
+ @module = mod
14
+ end
15
+ end
16
+
17
+ private
18
+ def create(sym, *args)
19
+ return sym unless sym.kind_of?(Symbol)
20
+
21
+ begin
22
+ type = self.class.module.const_get(sym)
23
+ rescue NameError
24
+ raise NameError, "Unknown type to instantiate: #{sym.inspect}. Available types are: #{available.inspect}"
25
+ end
26
+
27
+ type.new(*args)
28
+ end
29
+
30
+ def available
31
+ return self.class.module.constants.sort
32
+ end
33
+ end
34
+ end
@@ -1,45 +1,17 @@
1
- Dir["#{File.dirname(__FILE__)}/mapper_styles/*.rb"].each do |path|
1
+ Dir[File.join(File.dirname(__FILE__), 'argument_mapper', '*.rb')].each do |path|
2
2
  require path
3
3
  end
4
4
 
5
5
  module Rake::Funnel::Support
6
- class Switch
7
- attr_reader :switch, :values
8
-
9
- def initialize(switch, values)
10
- @values = values
11
- @switch = switch
12
- end
13
- end
14
-
15
- class Value
16
- attr_reader :key, :value
17
-
18
- def initialize(value)
19
- @key = nil
20
- @value = value
21
- end
22
- end
23
-
24
- class KeyValuePair
25
- attr_reader :key, :value
26
-
27
- def initialize(key, value)
28
- @key = key
29
- @value = value
30
- end
31
- end
32
-
33
6
  class Mapper
7
+ include Rake::Funnel::Support::ArgumentMapper
8
+ include InstantiateSymbol
9
+ instantiate Styles
10
+
34
11
  def initialize(style = :Default)
35
- raise "You cannot use a 'nil' mapper. Available mappers are: #{MapperStyles.constants.sort.join(', ')}" if style.nil?
12
+ raise "You cannot use the 'nil' mapper style. Available mappers are: #{available.inspect}" if style.nil?
36
13
 
37
- @style = style
38
- begin
39
- @style = MapperStyles.const_get(style).new if style.kind_of?(Symbol)
40
- rescue => ex
41
- raise "Something went wrong while creating the '#{style}' mapper: #{ex}"
42
- end
14
+ @style = create(style)
43
15
  end
44
16
 
45
17
  def map(args = {})
@@ -1,4 +1,4 @@
1
- module Rake::Funnel::Tasks::MSBuildSupport
1
+ module Rake::Funnel::Support::MSBuild
2
2
  class BuildTool
3
3
  class << self
4
4
  def find
@@ -0,0 +1,3 @@
1
+ Dir[File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), '*.rb')].each do |path|
2
+ require path
3
+ end
@@ -1,4 +1,4 @@
1
- module Rake::Funnel::Tasks::MSDeploySupport
1
+ module Rake::Funnel::Support::MSDeploy
2
2
  class RegistryPatch
3
3
  KEYS = [
4
4
  'SOFTWARE\Microsoft\IIS Extensions\MSDeploy\3',
@@ -0,0 +1,3 @@
1
+ Dir[File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), '*.rb')].each do |path|
2
+ require path
3
+ end
@@ -1,6 +1,6 @@
1
1
  require 'rexml/document'
2
2
 
3
- module Rake::Funnel::Tasks::SideBySideSpecsSupport
3
+ module Rake::Funnel::Support::SideBySideSpecs
4
4
  class Remover
5
5
  class << self
6
6
  DEFAULTS = {
@@ -0,0 +1,3 @@
1
+ Dir[File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), '*.rb')].each do |path|
2
+ require path
3
+ end
@@ -1,6 +1,6 @@
1
1
  require 'smart_colored/extend'
2
2
 
3
- module Rake::Funnel::Tasks::TimingSupport
3
+ module Rake::Funnel::Support::Timing
4
4
  class Report
5
5
  class Column
6
6
  attr_reader :header
@@ -1,4 +1,4 @@
1
- module Rake::Funnel::Tasks::TimingSupport
1
+ module Rake::Funnel::Support::Timing
2
2
  class Statistics
3
3
  include Enumerable
4
4
 
@@ -0,0 +1,3 @@
1
+ Dir[File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), '*.rb')].each do |path|
2
+ require path
3
+ end
@@ -1,12 +1,29 @@
1
+ require 'ostruct'
2
+
1
3
  module Rake::Funnel::Support
2
- class Version
4
+ class VersionInfo < OpenStruct
5
+ include Enumerable
6
+
7
+ def initialize(hash = nil)
8
+ super(hash)
9
+ freeze
10
+ end
11
+
12
+ def each(&block)
13
+ each_pair(&block)
14
+ end
15
+
3
16
  class << self
4
17
  def parse(context)
5
- {
6
- assembly_version: assembly_version(context),
7
- assembly_file_version: assembly_file_version(context),
8
- assembly_informational_version: assembly_informational_version(context)
9
- }
18
+ VersionInfo.new({
19
+ assembly_version: assembly_version(context),
20
+ assembly_file_version: assembly_file_version(context),
21
+ assembly_informational_version: assembly_informational_version(context)
22
+ })
23
+ end
24
+
25
+ def read_version_from(file)
26
+ File.open(file, &:readline).strip
10
27
  end
11
28
 
12
29
  private
@@ -40,12 +57,12 @@ module Rake::Funnel::Support
40
57
 
41
58
  def strip_trailing_non_numeric(str)
42
59
  return nil if str.nil?
43
- str.gsub(/[^\d\.].*/, '')
60
+ str.to_s.gsub(/[^\d\.].*/, '')
44
61
  end
45
62
 
46
63
  def strip_leading_non_numeric(str)
47
64
  return nil if str.nil?
48
- str = str.gsub(/[^\d\.]/, '')
65
+ str = str.to_s.gsub(/[^\d\.]/, '')
49
66
 
50
67
  return nil if str.empty?
51
68
  str
@@ -0,0 +1,34 @@
1
+ require 'rake/tasklib'
2
+
3
+ module Rake::Funnel::Tasks
4
+ class AssemblyVersion < Rake::TaskLib
5
+ include Rake::Funnel::Support
6
+
7
+ attr_accessor :name, :language, :source, :source_args, :target_path
8
+
9
+ def initialize(name = :version)
10
+ @name = name
11
+ @language = :cs
12
+ @source = :FromVersionFiles
13
+ @source_args = {}
14
+ @target_path = next_to_version_file
15
+
16
+ yield self if block_given?
17
+ define
18
+ end
19
+
20
+ private
21
+ def define
22
+ desc 'Generate version info'
23
+ task name do
24
+ writer = AssemblyVersionWriter.new(source, source_args)
25
+
26
+ writer.write(target_path, language)
27
+ end
28
+ end
29
+
30
+ def next_to_version_file
31
+ Proc.new { |language, version_info, source| File.join(File.dirname(source), "VersionInfo.#{language}") }
32
+ end
33
+ end
34
+ end
@@ -2,11 +2,11 @@ require 'rake/tasklib'
2
2
 
3
3
  module Rake::Funnel::Tasks
4
4
  class BinPath < Rake::TaskLib
5
- attr_accessor :name, :pattern
5
+ attr_accessor :name, :search_pattern
6
6
 
7
7
  def initialize(name = :bin_path)
8
8
  @name = name
9
- @pattern = %w(tools/* tools/*/bin packages/**/tools)
9
+ @search_pattern = %w(tools/* tools/*/bin packages/**/tools)
10
10
 
11
11
  yield self if block_given?
12
12
  define
@@ -25,7 +25,7 @@ module Rake::Funnel::Tasks
25
25
  end
26
26
 
27
27
  def add_pattern_to_path_environment
28
- bin_paths = Dir[*@pattern].map { |path| File.expand_path(path) }.sort
28
+ bin_paths = Dir[*@search_pattern].map { |path| File.expand_path(path) }.sort
29
29
 
30
30
  ENV['PATH'] = ([] << bin_paths << ENV['PATH']).flatten.join(File::PATH_SEPARATOR)
31
31
  bin_paths
@@ -3,6 +3,8 @@ require 'rake/tasklib'
3
3
 
4
4
  module Rake::Funnel::Tasks
5
5
  class Copy < Rake::TaskLib
6
+ include Rake::Funnel::Support
7
+
6
8
  attr_accessor :name, :source, :target
7
9
 
8
10
  def initialize(name = :copy)
@@ -39,7 +41,7 @@ module Rake::Funnel::Tasks
39
41
  end
40
42
 
41
43
  def files
42
- Rake::Funnel::Support::Finder.new(source, self, 'No files found.').all_or_default
44
+ Finder.new(source, self, 'No files found.').all_or_default
43
45
  end
44
46
 
45
47
  def target_path(file)
@@ -6,7 +6,9 @@ end
6
6
 
7
7
  module Rake::Funnel::Tasks
8
8
  class Environments < Rake::TaskLib
9
- attr_accessor :base_dir, :default_env, :default_config, :local_config
9
+ include Rake::Funnel::Support::Environments
10
+
11
+ attr_accessor :base_dir, :default_env, :default_config, :local_config, :customizer
10
12
 
11
13
  def initialize
12
14
  @default_env = nil
@@ -26,7 +28,7 @@ module Rake::Funnel::Tasks
26
28
  environments.each do |env|
27
29
  desc "Configure for the #{env[:name]} environment"
28
30
  task env[:name] do
29
- EnvironmentsSupport::Loader.load_configuration(env)
31
+ Loader.load_configuration(env, configatron, customizer)
30
32
  end
31
33
  end
32
34
  end
@@ -1,11 +1,10 @@
1
1
  require 'rake/tasklib'
2
2
 
3
- Dir["#{File.dirname(__FILE__)}/msbuild_support/*.rb"].each do |path|
4
- require path
5
- end
6
-
7
3
  module Rake::Funnel::Tasks
8
4
  class MSBuild < Rake::TaskLib
5
+ include Rake::Funnel::Support
6
+ include Rake::Funnel::Support::MSBuild
7
+
9
8
  attr_accessor :name, :project_or_solution, :args, :search_pattern
10
9
 
11
10
  def initialize(name = :compile)
@@ -18,7 +17,7 @@ module Rake::Funnel::Tasks
18
17
  end
19
18
 
20
19
  def msbuild
21
- @_msbuild || MSBuildSupport::BuildTool.find
20
+ @_msbuild || BuildTool.find
22
21
  end
23
22
 
24
23
  def msbuild=(value)
@@ -26,7 +25,7 @@ module Rake::Funnel::Tasks
26
25
  end
27
26
 
28
27
  def project_or_solution
29
- Rake::Funnel::Support::Finder.new(@_project_or_solution || search_pattern, self, 'No projects or more than one project found.')
28
+ Finder.new(@_project_or_solution || search_pattern, self, 'No projects or more than one project found.')
30
29
  end
31
30
 
32
31
  def project_or_solution=(value)
@@ -40,7 +39,7 @@ module Rake::Funnel::Tasks
40
39
  cmd = [
41
40
  msbuild,
42
41
  project_or_solution.single,
43
- *Rake::Funnel::Support::Mapper.new(:MSBuild).map(args)
42
+ *Mapper.new(:MSBuild).map(args)
44
43
  ]
45
44
 
46
45
  sh(*cmd)
@@ -1,12 +1,11 @@
1
1
  require 'rake/clean'
2
2
  require 'rake/tasklib'
3
3
 
4
- Dir["#{File.dirname(__FILE__)}/msdeploy_support/*.rb"].each do |path|
5
- require path
6
- end
7
-
8
4
  module Rake::Funnel::Tasks
9
5
  class MSDeploy < Rake::TaskLib
6
+ include Rake::Funnel::Support
7
+ include Rake::Funnel::Support::MSDeploy
8
+
10
9
  attr_accessor :name, :msdeploy, :log_file, :args
11
10
 
12
11
  def initialize(name = :msdeploy)
@@ -28,12 +27,12 @@ module Rake::Funnel::Tasks
28
27
 
29
28
  desc "Deploy #{deploy_source(args)}"
30
29
  task @name do
31
- mapper = Rake::Funnel::Support::Mapper.new(:MSDeploy)
30
+ mapper = Mapper.new(:MSDeploy)
32
31
  cmd = [quote(msdeploy), mapper.map(args)]
33
32
  .flatten
34
33
  .join(' ')
35
34
 
36
- MSDeploySupport::RegistryPatch.new do
35
+ RegistryPatch.new do
37
36
  shell(cmd, log_file: log_file, error_lines: /^(error|[\w\.]*exception)/i)
38
37
  end
39
38
  end