mendicantx-rubicant 0.0.4 → 0.0.5
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.
- data/lib/dotnet/framework.rb +33 -33
- data/lib/dotnet/frameworks.yml +13 -13
- data/lib/facades.rb +39 -39
- data/lib/rubicant.rb +23 -23
- data/lib/runners/build_runners.rb +2 -2
- data/lib/runners/compiler_runners.rb +76 -43
- data/lib/runners/file_tasks.rb +50 -50
- data/rakefile.rb +34 -34
- data/rubicant.gemspec +35 -34
- data/test/unit/dotnet/when_creating_new_framework.rb +60 -60
- data/test/unit/dotnet/when_getting_framework_information.rb +63 -63
- data/test/unit/runners/when_calling_copyfiles_task.rb +47 -47
- data/test/unit/runners/when_calling_csc_runner.rb +75 -75
- data/test/unit/runners/when_calling_ms_build_runner.rb +2 -2
- metadata +1 -1
data/lib/dotnet/framework.rb
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
require 'configatron'
|
|
2
|
-
require 'win32/registry'
|
|
3
|
-
|
|
4
|
-
module Rubicant::DotNet
|
|
5
|
-
|
|
6
|
-
class Frameworks
|
|
7
|
-
def self.get_framework()
|
|
8
|
-
ENV['framework'] = 'net35' if ENV['framework'].nil?
|
|
9
|
-
configatron.configure_from_yaml(File.dirname(__FILE__) + '/frameworks.yml') if configatron.frameworks.nil?
|
|
10
|
-
frameworkConfiguration = configatron.frameworks.retrieve(ENV['framework'])
|
|
11
|
-
fail('Requested framework does not exist in configuration') if frameworkConfiguration.nil?
|
|
12
|
-
return Framework.new(frameworkConfiguration)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
class Framework
|
|
18
|
-
attr_reader :framework_dir, :sdk_dir
|
|
19
|
-
|
|
20
|
-
def initialize(frameworkConfig)
|
|
21
|
-
framework_key = Win32::Registry::HKEY_LOCAL_MACHINE.open(frameworkConfig.framework_registry_path)
|
|
22
|
-
framework_sdk_key = Win32::Registry::HKEY_LOCAL_MACHINE.open(frameworkConfig.framework_sdk_registry_path)
|
|
23
|
-
begin
|
|
24
|
-
@framework_dir = framework_key.read_s(frameworkConfig.framework_registry_key) + "\\#{frameworkConfig.framework_version}"
|
|
25
|
-
@sdk_dir = framework_sdk_key.read_s(frameworkConfig.framework_sdk_registry_key)
|
|
26
|
-
rescue Win32::Registry::Error
|
|
27
|
-
puts "Either the Framework or the SDK is not installed for #{ENV['framework']}"
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
require 'configatron'
|
|
2
|
+
require 'win32/registry'
|
|
3
|
+
|
|
4
|
+
module Rubicant::DotNet
|
|
5
|
+
|
|
6
|
+
class Frameworks
|
|
7
|
+
def self.get_framework()
|
|
8
|
+
ENV['framework'] = 'net35' if ENV['framework'].nil?
|
|
9
|
+
configatron.configure_from_yaml(File.dirname(__FILE__) + '/frameworks.yml') if configatron.frameworks.nil?
|
|
10
|
+
frameworkConfiguration = configatron.frameworks.retrieve(ENV['framework'])
|
|
11
|
+
fail('Requested framework does not exist in configuration') if frameworkConfiguration.nil?
|
|
12
|
+
return Framework.new(frameworkConfiguration)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
class Framework
|
|
18
|
+
attr_reader :framework_dir, :sdk_dir
|
|
19
|
+
|
|
20
|
+
def initialize(frameworkConfig)
|
|
21
|
+
framework_key = Win32::Registry::HKEY_LOCAL_MACHINE.open(frameworkConfig.framework_registry_path)
|
|
22
|
+
framework_sdk_key = Win32::Registry::HKEY_LOCAL_MACHINE.open(frameworkConfig.framework_sdk_registry_path)
|
|
23
|
+
begin
|
|
24
|
+
@framework_dir = framework_key.read_s(frameworkConfig.framework_registry_key) + "\\#{frameworkConfig.framework_version}"
|
|
25
|
+
@sdk_dir = framework_sdk_key.read_s(frameworkConfig.framework_sdk_registry_key)
|
|
26
|
+
rescue Win32::Registry::Error
|
|
27
|
+
puts "Either the Framework or the SDK is not installed for #{ENV['framework']}"
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
|
|
34
34
|
end
|
data/lib/dotnet/frameworks.yml
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
frameworks:
|
|
2
|
-
net20:
|
|
3
|
-
framework_registry_path: SOFTWARE\Microsoft\.NETFramework
|
|
4
|
-
framework_sdk_registry_path: SOFTWARE\Microsoft\.NETFramework
|
|
5
|
-
framework_registry_key: InstallRoot
|
|
6
|
-
framework_sdk_registry_key: sdkInstallRootv2.0
|
|
7
|
-
framework_version: v2.0.50727
|
|
8
|
-
net35:
|
|
9
|
-
framework_registry_path: SOFTWARE\Microsoft\.NETFramework
|
|
10
|
-
framework_sdk_registry_path: SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A\WinSDKNetFxTools
|
|
11
|
-
framework_registry_key: InstallRoot
|
|
12
|
-
framework_sdk_registry_key: InstallationFolder
|
|
13
|
-
framework_version: v3.5
|
|
1
|
+
frameworks:
|
|
2
|
+
net20:
|
|
3
|
+
framework_registry_path: SOFTWARE\Microsoft\.NETFramework
|
|
4
|
+
framework_sdk_registry_path: SOFTWARE\Microsoft\.NETFramework
|
|
5
|
+
framework_registry_key: InstallRoot
|
|
6
|
+
framework_sdk_registry_key: sdkInstallRootv2.0
|
|
7
|
+
framework_version: v2.0.50727
|
|
8
|
+
net35:
|
|
9
|
+
framework_registry_path: SOFTWARE\Microsoft\.NETFramework
|
|
10
|
+
framework_sdk_registry_path: SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A\WinSDKNetFxTools
|
|
11
|
+
framework_registry_key: InstallRoot
|
|
12
|
+
framework_sdk_registry_key: InstallationFolder
|
|
13
|
+
framework_version: v3.5
|
|
14
14
|
|
data/lib/facades.rb
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
require 'rake'
|
|
2
|
-
|
|
3
|
-
module Rubicant
|
|
4
|
-
|
|
5
|
-
class Runner
|
|
6
|
-
def self.run(command)
|
|
7
|
-
puts command unless ENV['debug'].nil?
|
|
8
|
-
sh command
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def self.exec(program, opts={})
|
|
12
|
-
fail("program is required") if program.nil? || program.length == 0
|
|
13
|
-
command = ""
|
|
14
|
-
command << opts[:program_dir] unless opts[:program_dir].nil?
|
|
15
|
-
command << "/" if command.length > 0 && command.rindex("/") != command.length - 1
|
|
16
|
-
command << program + " "
|
|
17
|
-
command << opts[:args].join(" ") unless opts[:args].nil?
|
|
18
|
-
|
|
19
|
-
working_dir = Dir.pwd
|
|
20
|
-
working_dir = opts[:working_dir] unless opts[:working_dir].nil?
|
|
21
|
-
|
|
22
|
-
Dir.chdir(working_dir) do |path|
|
|
23
|
-
Runner.run(command)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
class Files
|
|
31
|
-
def self.copy(src, dest, opts={})
|
|
32
|
-
cp src, dest, opts
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def self.remove(list, options={})
|
|
36
|
-
rm list, options
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
1
|
+
require 'rake'
|
|
2
|
+
|
|
3
|
+
module Rubicant
|
|
4
|
+
|
|
5
|
+
class Runner
|
|
6
|
+
def self.run(command)
|
|
7
|
+
puts command unless ENV['debug'].nil?
|
|
8
|
+
sh command
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def self.exec(program, opts={})
|
|
12
|
+
fail("program is required") if program.nil? || program.length == 0
|
|
13
|
+
command = ""
|
|
14
|
+
command << opts[:program_dir] unless opts[:program_dir].nil?
|
|
15
|
+
command << "/" if command.length > 0 && command.rindex("/") != command.length - 1
|
|
16
|
+
command << program + " "
|
|
17
|
+
command << opts[:args].join(" ") unless opts[:args].nil?
|
|
18
|
+
|
|
19
|
+
working_dir = Dir.pwd
|
|
20
|
+
working_dir = opts[:working_dir] unless opts[:working_dir].nil?
|
|
21
|
+
|
|
22
|
+
Dir.chdir(working_dir) do |path|
|
|
23
|
+
Runner.run(command)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
class Files
|
|
31
|
+
def self.copy(src, dest, opts={})
|
|
32
|
+
cp src, dest, opts
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.remove(list, options={})
|
|
36
|
+
rm list, options
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
40
|
end
|
data/lib/rubicant.rb
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/runners/compiler_runners'
|
|
2
|
-
require File.dirname(__FILE__) + '/runners/build_runners'
|
|
3
|
-
require File.dirname(__FILE__) + '/runners/test_runners'
|
|
4
|
-
require File.dirname(__FILE__) + '/runners/file_tasks'
|
|
5
|
-
require File.dirname(__FILE__) + '/dotnet/framework'
|
|
6
|
-
require File.dirname(__FILE__) + '/facades'
|
|
7
|
-
require 'erb'
|
|
8
|
-
|
|
9
|
-
module Rubicant
|
|
10
|
-
include Rubicant::DotNet
|
|
11
|
-
include Rubicant::Runners
|
|
12
|
-
|
|
13
|
-
def expand_template(template, output_file)
|
|
14
|
-
template_string = ""
|
|
15
|
-
File.open(template).each do |line|
|
|
16
|
-
template_string << line
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
output = File.open(output_file, "w")
|
|
20
|
-
output.puts(ERB.new(template_string).result)
|
|
21
|
-
output.close
|
|
22
|
-
end
|
|
23
|
-
|
|
1
|
+
require File.dirname(__FILE__) + '/runners/compiler_runners'
|
|
2
|
+
require File.dirname(__FILE__) + '/runners/build_runners'
|
|
3
|
+
require File.dirname(__FILE__) + '/runners/test_runners'
|
|
4
|
+
require File.dirname(__FILE__) + '/runners/file_tasks'
|
|
5
|
+
require File.dirname(__FILE__) + '/dotnet/framework'
|
|
6
|
+
require File.dirname(__FILE__) + '/facades'
|
|
7
|
+
require 'erb'
|
|
8
|
+
|
|
9
|
+
module Rubicant
|
|
10
|
+
include Rubicant::DotNet
|
|
11
|
+
include Rubicant::Runners
|
|
12
|
+
|
|
13
|
+
def expand_template(template, output_file)
|
|
14
|
+
template_string = ""
|
|
15
|
+
File.open(template).each do |line|
|
|
16
|
+
template_string << line
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
output = File.open(output_file, "w")
|
|
20
|
+
output.puts(ERB.new(template_string).result)
|
|
21
|
+
output.close
|
|
22
|
+
end
|
|
23
|
+
|
|
24
24
|
end
|
|
@@ -55,7 +55,7 @@ private
|
|
|
55
55
|
|
|
56
56
|
unless (@settings[:properties].nil?)
|
|
57
57
|
properties_strings = []
|
|
58
|
-
@settings[:properties].each do |key, value|
|
|
58
|
+
@settings[:properties].sort.each do |key, value|
|
|
59
59
|
properties_strings << "#{key}=#{value}"
|
|
60
60
|
end
|
|
61
61
|
file.puts(" /property:#{properties_strings.join(';')}") unless properties_strings.length == 0
|
|
@@ -63,7 +63,7 @@ private
|
|
|
63
63
|
|
|
64
64
|
unless (@settings[:file_logger_parameters].nil?)
|
|
65
65
|
file_logger_parameters_strings = []
|
|
66
|
-
@settings[:file_logger_parameters].each do |key, value|
|
|
66
|
+
@settings[:file_logger_parameters].sort.each do |key, value|
|
|
67
67
|
file_logger_parameters_strings << "#{key}=#{value}"
|
|
68
68
|
end
|
|
69
69
|
file.puts(" /fileloggerparameters:#{file_logger_parameters_strings.join(';')}") unless file_logger_parameters_strings.length == 0
|
|
@@ -1,43 +1,76 @@
|
|
|
1
|
-
require 'rake'
|
|
2
|
-
require 'rake/tasklib'
|
|
3
|
-
require File.dirname(__FILE__) + '/../facades'
|
|
4
|
-
require File.dirname(__FILE__) + '/../dotnet/framework'
|
|
5
|
-
|
|
6
|
-
module Rubicant::Runners
|
|
7
|
-
class CscRunner
|
|
8
|
-
|
|
9
|
-
attr_accessor :settings
|
|
10
|
-
|
|
11
|
-
def initialize(settings = {})
|
|
12
|
-
@settings = settings
|
|
13
|
-
@csc = "#{Rubicant::DotNet::Frameworks.get_framework.framework_dir}\\csc.exe"
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def run
|
|
17
|
-
fail('Debug can only be true or nil') if (@settings[:debug].nil? == false && !@settings[:debug])
|
|
18
|
-
Rubicant::Runner.run "#{build_command}"
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
private
|
|
22
|
-
def build_command
|
|
23
|
-
build_rsp
|
|
24
|
-
command = "#{@csc} @#{ENV['TEMP']}/csc.rsp"
|
|
25
|
-
command
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def build_rsp
|
|
29
|
-
file = File.new("#{ENV['TEMP']}/csc.rsp", "w")
|
|
30
|
-
|
|
31
|
-
file.puts " /target:#{@settings[:target]}" unless @settings[:target].nil?
|
|
32
|
-
file.puts " /reference:#{@settings[:references].join(';')}" unless @settings[:references].nil?
|
|
33
|
-
file.puts " /out:#{@settings[:out]}" unless @settings[:out].nil?
|
|
34
|
-
file.puts " /debug:full" unless @settings[:debug].nil?
|
|
35
|
-
file.puts " #{@settings[:files].to_a.join(' ')}".gsub(/\//, "\\") unless @settings[:files].nil?
|
|
36
|
-
file.close
|
|
37
|
-
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
1
|
+
require 'rake'
|
|
2
|
+
require 'rake/tasklib'
|
|
3
|
+
require File.dirname(__FILE__) + '/../facades'
|
|
4
|
+
require File.dirname(__FILE__) + '/../dotnet/framework'
|
|
5
|
+
|
|
6
|
+
module Rubicant::Runners
|
|
7
|
+
class CscRunner
|
|
8
|
+
|
|
9
|
+
attr_accessor :settings
|
|
10
|
+
|
|
11
|
+
def initialize(settings = {})
|
|
12
|
+
@settings = settings
|
|
13
|
+
@csc = "#{Rubicant::DotNet::Frameworks.get_framework.framework_dir}\\csc.exe"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def run
|
|
17
|
+
fail('Debug can only be true or nil') if (@settings[:debug].nil? == false && !@settings[:debug])
|
|
18
|
+
Rubicant::Runner.run "#{build_command}"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
def build_command
|
|
23
|
+
build_rsp
|
|
24
|
+
command = "#{@csc} @#{ENV['TEMP']}/csc.rsp"
|
|
25
|
+
command
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def build_rsp
|
|
29
|
+
file = File.new("#{ENV['TEMP']}/csc.rsp", "w")
|
|
30
|
+
|
|
31
|
+
file.puts " /target:#{@settings[:target]}" unless @settings[:target].nil?
|
|
32
|
+
file.puts " /reference:#{@settings[:references].join(';')}" unless @settings[:references].nil?
|
|
33
|
+
file.puts " /out:#{@settings[:out]}" unless @settings[:out].nil?
|
|
34
|
+
file.puts " /debug:full" unless @settings[:debug].nil?
|
|
35
|
+
file.puts " #{@settings[:files].to_a.join(' ')}".gsub(/\//, "\\") unless @settings[:files].nil?
|
|
36
|
+
file.close
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def generate_assembly_info(opts)
|
|
43
|
+
|
|
44
|
+
opts[:cls_compliant] = true if opts[:cls_compliant].nil?
|
|
45
|
+
fail('File is required for assembly info generation') if opts[:path].nil?
|
|
46
|
+
|
|
47
|
+
assembly_info = "using System;
|
|
48
|
+
using System.Reflection;
|
|
49
|
+
using System.Runtime.CompilerServices;
|
|
50
|
+
using System.Runtime.InteropServices;
|
|
51
|
+
|
|
52
|
+
[assembly: CLSCompliantAttribute(#{opts[:cls_compliant]})]
|
|
53
|
+
[assembly: ComVisibleAttribute(false)]
|
|
54
|
+
[assembly: AssemblyTitleAttribute(\"#{opts[:title]}\")]
|
|
55
|
+
[assembly: AssemblyDescriptionAttribute(\"#{opts[:description]}\")]
|
|
56
|
+
[assembly: AssemblyCompanyAttribute(\"#{opts[:company]}\")]
|
|
57
|
+
[assembly: AssemblyProductAttribute(\"#{opts[:product]}\")]
|
|
58
|
+
[assembly: AssemblyCopyrightAttribute(\"#{opts[:copyright]}\")]
|
|
59
|
+
[assembly: AssemblyVersionAttribute(\"#{opts[:version]}\")]
|
|
60
|
+
[assembly: AssemblyInformationalVersionAttribute(\"#{opts[:version]}\")]
|
|
61
|
+
[assembly: AssemblyFileVersionAttribute(\"#{opts[:version]}\")]
|
|
62
|
+
[assembly: AssemblyDelaySignAttribute(false)]
|
|
63
|
+
"
|
|
64
|
+
puts "Generating assembly info file in: #{opts[:path]}"
|
|
65
|
+
|
|
66
|
+
mkdir_p opts[:path]
|
|
67
|
+
asm_file = File.new("#{opts[:file]}\\AssemblyInfo.cs", "w")
|
|
68
|
+
|
|
69
|
+
asm_file.puts(assembly_info)
|
|
70
|
+
|
|
71
|
+
asm_file.close
|
|
72
|
+
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
end
|
|
76
|
+
|
data/lib/runners/file_tasks.rb
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
require 'rake'
|
|
2
|
-
require 'fileutils'
|
|
3
|
-
|
|
4
|
-
module Rubicant::Runners
|
|
5
|
-
class CopyFiles
|
|
6
|
-
|
|
7
|
-
attr_accessor :settings
|
|
8
|
-
|
|
9
|
-
def initialize(settings = {})
|
|
10
|
-
@settings = settings
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def run
|
|
14
|
-
fail "Target directory must be defined (:target_dir)" if @settings[:target_dir].nil?
|
|
15
|
-
fail "Source files must be defined (:file_globs)" if @settings[:file_globs].nil?
|
|
16
|
-
fail "Base directory must be defined (:base_dir)" if @settings[:base_dir].nil?
|
|
17
|
-
@settings[:excludes] = [] if @settings[:excludes].nil?
|
|
18
|
-
|
|
19
|
-
mkdir @settings[:target_dir] unless (File.exists?(@settings[:target_dir]))
|
|
20
|
-
|
|
21
|
-
files = FileList.new
|
|
22
|
-
@settings[:file_globs].each do |glob|
|
|
23
|
-
files.include("#{@settings[:base_dir]}/#{glob}")
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
@settings[:excludes].each do |exclude|
|
|
27
|
-
files.exclude(exclude)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
files.each do |filename|
|
|
31
|
-
target_dir_suffix = get_target_dir_suffix(filename)
|
|
32
|
-
target_name = File.join(@settings[:target_dir], target_dir_suffix)
|
|
33
|
-
if (File.directory?(filename))
|
|
34
|
-
mkdir_p target_name
|
|
35
|
-
else
|
|
36
|
-
puts "copying from #{filename} to #{target_name}"
|
|
37
|
-
cp filename, target_name
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def get_target_dir_suffix(file)
|
|
45
|
-
suffix = file[@settings[:base_dir].length..file.length-1]
|
|
46
|
-
puts "FileName is #{file}"
|
|
47
|
-
puts "Base dir is #{@settings[:base_dir]}"
|
|
48
|
-
puts "Suffix is #{suffix}"
|
|
49
|
-
return suffix
|
|
50
|
-
end
|
|
1
|
+
require 'rake'
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
|
|
4
|
+
module Rubicant::Runners
|
|
5
|
+
class CopyFiles
|
|
6
|
+
|
|
7
|
+
attr_accessor :settings
|
|
8
|
+
|
|
9
|
+
def initialize(settings = {})
|
|
10
|
+
@settings = settings
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def run
|
|
14
|
+
fail "Target directory must be defined (:target_dir)" if @settings[:target_dir].nil?
|
|
15
|
+
fail "Source files must be defined (:file_globs)" if @settings[:file_globs].nil?
|
|
16
|
+
fail "Base directory must be defined (:base_dir)" if @settings[:base_dir].nil?
|
|
17
|
+
@settings[:excludes] = [] if @settings[:excludes].nil?
|
|
18
|
+
|
|
19
|
+
mkdir @settings[:target_dir] unless (File.exists?(@settings[:target_dir]))
|
|
20
|
+
|
|
21
|
+
files = FileList.new
|
|
22
|
+
@settings[:file_globs].each do |glob|
|
|
23
|
+
files.include("#{@settings[:base_dir]}/#{glob}")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
@settings[:excludes].each do |exclude|
|
|
27
|
+
files.exclude(exclude)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
files.each do |filename|
|
|
31
|
+
target_dir_suffix = get_target_dir_suffix(filename)
|
|
32
|
+
target_name = File.join(@settings[:target_dir], target_dir_suffix)
|
|
33
|
+
if (File.directory?(filename))
|
|
34
|
+
mkdir_p target_name
|
|
35
|
+
else
|
|
36
|
+
puts "copying from #{filename} to #{target_name}"
|
|
37
|
+
cp filename, target_name
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def get_target_dir_suffix(file)
|
|
45
|
+
suffix = file[@settings[:base_dir].length..file.length-1]
|
|
46
|
+
puts "FileName is #{file}"
|
|
47
|
+
puts "Base dir is #{@settings[:base_dir]}"
|
|
48
|
+
puts "Suffix is #{suffix}"
|
|
49
|
+
return suffix
|
|
50
|
+
end
|
|
51
51
|
end
|
data/rakefile.rb
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
require 'rake'
|
|
2
|
-
require 'rubygems'
|
|
3
|
-
require 'rake/testtask'
|
|
4
|
-
require 'rake/rdoctask'
|
|
5
|
-
require 'lib/rubicant'
|
|
6
|
-
require 'rake/gempackagetask'
|
|
7
|
-
|
|
8
|
-
task :test do
|
|
9
|
-
require 'rake/runtest'
|
|
10
|
-
Rake.run_tests 'test/**/*.rb'
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
spec = Gem::Specification.new do |s|
|
|
14
|
-
s.name = "Rubicant"
|
|
15
|
-
s.version = "0.0.
|
|
16
|
-
s.author = "mendicant"
|
|
17
|
-
s.email = "mendicant@beigesunshine.com"
|
|
18
|
-
s.homepage = "http://blog.beigesunshine.com"
|
|
19
|
-
s.platform = Gem::Platform::RUBY
|
|
20
|
-
s.summary = ".Net Build Framework in Ruby"
|
|
21
|
-
s.files = FileList["lib/**/*"].to_a
|
|
22
|
-
s.require_path = "lib"
|
|
23
|
-
s.autorequire = "rubicant"
|
|
24
|
-
s.test_files = FileList["test/**/when*.rb"].to_a
|
|
25
|
-
s.has_rdoc = false
|
|
26
|
-
s.extra_rdoc_files = []
|
|
27
|
-
s.add_dependency("configatron", ">= 2.1.6")
|
|
28
|
-
s.add_dependency("rake", ">= 0.8.3")
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
Rake::GemPackageTask.new(spec) do |pkg|
|
|
32
|
-
pkg.need_zip = true
|
|
33
|
-
pkg.need_tar = true
|
|
34
|
-
end
|
|
1
|
+
require 'rake'
|
|
2
|
+
require 'rubygems'
|
|
3
|
+
require 'rake/testtask'
|
|
4
|
+
require 'rake/rdoctask'
|
|
5
|
+
require 'lib/rubicant'
|
|
6
|
+
require 'rake/gempackagetask'
|
|
7
|
+
|
|
8
|
+
task :test do
|
|
9
|
+
require 'rake/runtest'
|
|
10
|
+
Rake.run_tests 'test/**/*.rb'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
spec = Gem::Specification.new do |s|
|
|
14
|
+
s.name = "Rubicant"
|
|
15
|
+
s.version = "0.0.5"
|
|
16
|
+
s.author = "mendicant"
|
|
17
|
+
s.email = "mendicant@beigesunshine.com"
|
|
18
|
+
s.homepage = "http://blog.beigesunshine.com"
|
|
19
|
+
s.platform = Gem::Platform::RUBY
|
|
20
|
+
s.summary = ".Net Build Framework in Ruby"
|
|
21
|
+
s.files = FileList["lib/**/*"].to_a
|
|
22
|
+
s.require_path = "lib"
|
|
23
|
+
s.autorequire = "rubicant"
|
|
24
|
+
s.test_files = FileList["test/**/when*.rb"].to_a
|
|
25
|
+
s.has_rdoc = false
|
|
26
|
+
s.extra_rdoc_files = []
|
|
27
|
+
s.add_dependency("configatron", ">= 2.1.6")
|
|
28
|
+
s.add_dependency("rake", ">= 0.8.3")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
|
32
|
+
pkg.need_zip = true
|
|
33
|
+
pkg.need_tar = true
|
|
34
|
+
end
|
data/rubicant.gemspec
CHANGED
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
Gem::Specification.new do |s|
|
|
2
|
-
s.name = "rubicant"
|
|
3
|
-
s.version = "0.0.
|
|
4
|
-
s.author = "mendicant"
|
|
5
|
-
s.email = "mendicant@beigesunshine.com"
|
|
6
|
-
s.homepage = "http://blog.beigesunshine.com"
|
|
7
|
-
s.summary = ".Net Build Framework in Ruby"
|
|
8
|
-
s.files = ["lib/facades.rb",
|
|
9
|
-
"lib/dotnet",
|
|
10
|
-
"lib/dotnet/frameworks.yml",
|
|
11
|
-
"lib/dotnet/framework.rb",
|
|
12
|
-
"lib/runners",
|
|
13
|
-
"lib/runners/test_runners.rb",
|
|
14
|
-
"lib/runners/compiler_runners.rb",
|
|
15
|
-
"lib/runners/build_runners.rb",
|
|
16
|
-
"lib/runners/file_tasks.rb",
|
|
17
|
-
"lib/rubicant.rb",
|
|
18
|
-
"rubicant.gemspec",
|
|
19
|
-
"rakefile.rb"]
|
|
20
|
-
s.require_path = "lib"
|
|
21
|
-
s.test_files = ["test/unit",
|
|
22
|
-
"test/unit/dotnet",
|
|
23
|
-
"test/unit/dotnet/when_creating_new_framework.rb",
|
|
24
|
-
"test/unit/dotnet/when_getting_framework_information.rb",
|
|
25
|
-
"test/unit/runners",
|
|
26
|
-
"test/unit/runners/when_calling_csc_runner.rb",
|
|
27
|
-
"test/unit/runners/when_calling_mb_unit_runner.rb",
|
|
28
|
-
"test/unit/runners/when_calling_copyfiles_task.rb",
|
|
29
|
-
"test/unit/runners/when_calling_ms_build_runner.rb",
|
|
30
|
-
"test/unit/runners/when_calling_ms_build_runner_with_incorrect_parameters.rb"]
|
|
31
|
-
s.has_rdoc = false
|
|
32
|
-
s.add_dependency("configatron", ">= 2.1.6")
|
|
33
|
-
s.add_dependency("rake", ">= 0.8.3")
|
|
34
|
-
|
|
1
|
+
Gem::Specification.new do |s|
|
|
2
|
+
s.name = "rubicant"
|
|
3
|
+
s.version = "0.0.5"
|
|
4
|
+
s.author = "mendicant"
|
|
5
|
+
s.email = "mendicant@beigesunshine.com"
|
|
6
|
+
s.homepage = "http://blog.beigesunshine.com"
|
|
7
|
+
s.summary = ".Net Build Framework in Ruby"
|
|
8
|
+
s.files = ["lib/facades.rb",
|
|
9
|
+
"lib/dotnet",
|
|
10
|
+
"lib/dotnet/frameworks.yml",
|
|
11
|
+
"lib/dotnet/framework.rb",
|
|
12
|
+
"lib/runners",
|
|
13
|
+
"lib/runners/test_runners.rb",
|
|
14
|
+
"lib/runners/compiler_runners.rb",
|
|
15
|
+
"lib/runners/build_runners.rb",
|
|
16
|
+
"lib/runners/file_tasks.rb",
|
|
17
|
+
"lib/rubicant.rb",
|
|
18
|
+
"rubicant.gemspec",
|
|
19
|
+
"rakefile.rb"]
|
|
20
|
+
s.require_path = "lib"
|
|
21
|
+
s.test_files = ["test/unit",
|
|
22
|
+
"test/unit/dotnet",
|
|
23
|
+
"test/unit/dotnet/when_creating_new_framework.rb",
|
|
24
|
+
"test/unit/dotnet/when_getting_framework_information.rb",
|
|
25
|
+
"test/unit/runners",
|
|
26
|
+
"test/unit/runners/when_calling_csc_runner.rb",
|
|
27
|
+
"test/unit/runners/when_calling_mb_unit_runner.rb",
|
|
28
|
+
"test/unit/runners/when_calling_copyfiles_task.rb",
|
|
29
|
+
"test/unit/runners/when_calling_ms_build_runner.rb",
|
|
30
|
+
"test/unit/runners/when_calling_ms_build_runner_with_incorrect_parameters.rb"]
|
|
31
|
+
s.has_rdoc = false
|
|
32
|
+
s.add_dependency("configatron", ">= 2.1.6")
|
|
33
|
+
s.add_dependency("rake", ">= 0.8.3")
|
|
34
|
+
|
|
35
|
+
end
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
require "test/unit"
|
|
2
|
-
|
|
3
|
-
class WhenCreatingNewFramework < Test::Unit::TestCase
|
|
4
|
-
|
|
5
|
-
def setup
|
|
6
|
-
@framework_path = 'framework_path'
|
|
7
|
-
@framework_sdk_path = 'framework_sdk_path'
|
|
8
|
-
@framework_version = 'framework_version'
|
|
9
|
-
@framework_key = 'framework_key'
|
|
10
|
-
@framework_sdk_key = 'framework_sdk_key'
|
|
11
|
-
@framework_config = StubbedFrameworkConfig.new(@framework_path, @framework_sdk_path, @framework_key, @framework_sdk_key, @framework_version)
|
|
12
|
-
@framework_dir = 'framework_dir'
|
|
13
|
-
@framework_sdk_dir = 'framework_sdk_dir'
|
|
14
|
-
@reg_path = mock()
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def test_should_load_framework_dir_from_registry
|
|
18
|
-
|
|
19
|
-
Win32::Registry::HKEY_LOCAL_MACHINE.expects(:open).with(@framework_path).returns(@reg_path)
|
|
20
|
-
Win32::Registry::HKEY_LOCAL_MACHINE.stubs(:open).with(@framework_sdk_path).returns(@reg_path)
|
|
21
|
-
@reg_path.expects(:read_s).with(@framework_key).returns(@framework_key)
|
|
22
|
-
@reg_path.stubs(:read_s).with(@framework_sdk_key).returns(@framework_sdk_key)
|
|
23
|
-
|
|
24
|
-
Rubicant::DotNet::Framework.new(@framework_config)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def test_should_load_framework_sdk_dir_from_registry
|
|
28
|
-
|
|
29
|
-
Win32::Registry::HKEY_LOCAL_MACHINE.expects(:open).with(@framework_path).returns(@reg_path)
|
|
30
|
-
Win32::Registry::HKEY_LOCAL_MACHINE.stubs(:open).with(@framework_sdk_path).returns(@reg_path)
|
|
31
|
-
@reg_path.stubs(:read_s).with(@framework_key).returns(@framework_key)
|
|
32
|
-
@reg_path.expects(:read_s).with(@framework_sdk_key).returns(@framework_sdk_key)
|
|
33
|
-
|
|
34
|
-
Rubicant::DotNet::Framework.new(@framework_config)
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def test_should_get_values_loaded_from_registry_from_created_framework
|
|
38
|
-
Win32::Registry::HKEY_LOCAL_MACHINE.stubs(:open).with(@framework_path).returns(@reg_path)
|
|
39
|
-
Win32::Registry::HKEY_LOCAL_MACHINE.stubs(:open).with(@framework_sdk_path).returns(@reg_path)
|
|
40
|
-
@reg_path.stubs(:read_s).with(@framework_key).returns(@framework_dir)
|
|
41
|
-
@reg_path.stubs(:read_s).with(@framework_sdk_key).returns(@framework_sdk_dir)
|
|
42
|
-
|
|
43
|
-
result = Rubicant::DotNet::Framework.new(@framework_config)
|
|
44
|
-
assert_equal "#{@framework_dir}\\#{@framework_version}", result.framework_dir
|
|
45
|
-
assert_equal @framework_sdk_dir, result.sdk_dir
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
class StubbedFrameworkConfig
|
|
51
|
-
attr_reader :framework_registry_key, :framework_sdk_registry_key, :framework_registry_path, :framework_sdk_registry_path, :framework_version
|
|
52
|
-
|
|
53
|
-
def initialize(framework_registry_path, framework_sdk_registry_path, framework_key, framework_sdk_key, framework_version)
|
|
54
|
-
@framework_registry_path = framework_registry_path
|
|
55
|
-
@framework_sdk_registry_path = framework_sdk_registry_path
|
|
56
|
-
@framework_registry_key = framework_key
|
|
57
|
-
@framework_sdk_registry_key = framework_sdk_key
|
|
58
|
-
@framework_version = framework_version
|
|
59
|
-
end
|
|
60
|
-
end
|
|
1
|
+
require "test/unit"
|
|
2
|
+
|
|
3
|
+
class WhenCreatingNewFramework < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@framework_path = 'framework_path'
|
|
7
|
+
@framework_sdk_path = 'framework_sdk_path'
|
|
8
|
+
@framework_version = 'framework_version'
|
|
9
|
+
@framework_key = 'framework_key'
|
|
10
|
+
@framework_sdk_key = 'framework_sdk_key'
|
|
11
|
+
@framework_config = StubbedFrameworkConfig.new(@framework_path, @framework_sdk_path, @framework_key, @framework_sdk_key, @framework_version)
|
|
12
|
+
@framework_dir = 'framework_dir'
|
|
13
|
+
@framework_sdk_dir = 'framework_sdk_dir'
|
|
14
|
+
@reg_path = mock()
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_should_load_framework_dir_from_registry
|
|
18
|
+
|
|
19
|
+
Win32::Registry::HKEY_LOCAL_MACHINE.expects(:open).with(@framework_path).returns(@reg_path)
|
|
20
|
+
Win32::Registry::HKEY_LOCAL_MACHINE.stubs(:open).with(@framework_sdk_path).returns(@reg_path)
|
|
21
|
+
@reg_path.expects(:read_s).with(@framework_key).returns(@framework_key)
|
|
22
|
+
@reg_path.stubs(:read_s).with(@framework_sdk_key).returns(@framework_sdk_key)
|
|
23
|
+
|
|
24
|
+
Rubicant::DotNet::Framework.new(@framework_config)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_should_load_framework_sdk_dir_from_registry
|
|
28
|
+
|
|
29
|
+
Win32::Registry::HKEY_LOCAL_MACHINE.expects(:open).with(@framework_path).returns(@reg_path)
|
|
30
|
+
Win32::Registry::HKEY_LOCAL_MACHINE.stubs(:open).with(@framework_sdk_path).returns(@reg_path)
|
|
31
|
+
@reg_path.stubs(:read_s).with(@framework_key).returns(@framework_key)
|
|
32
|
+
@reg_path.expects(:read_s).with(@framework_sdk_key).returns(@framework_sdk_key)
|
|
33
|
+
|
|
34
|
+
Rubicant::DotNet::Framework.new(@framework_config)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_should_get_values_loaded_from_registry_from_created_framework
|
|
38
|
+
Win32::Registry::HKEY_LOCAL_MACHINE.stubs(:open).with(@framework_path).returns(@reg_path)
|
|
39
|
+
Win32::Registry::HKEY_LOCAL_MACHINE.stubs(:open).with(@framework_sdk_path).returns(@reg_path)
|
|
40
|
+
@reg_path.stubs(:read_s).with(@framework_key).returns(@framework_dir)
|
|
41
|
+
@reg_path.stubs(:read_s).with(@framework_sdk_key).returns(@framework_sdk_dir)
|
|
42
|
+
|
|
43
|
+
result = Rubicant::DotNet::Framework.new(@framework_config)
|
|
44
|
+
assert_equal "#{@framework_dir}\\#{@framework_version}", result.framework_dir
|
|
45
|
+
assert_equal @framework_sdk_dir, result.sdk_dir
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class StubbedFrameworkConfig
|
|
51
|
+
attr_reader :framework_registry_key, :framework_sdk_registry_key, :framework_registry_path, :framework_sdk_registry_path, :framework_version
|
|
52
|
+
|
|
53
|
+
def initialize(framework_registry_path, framework_sdk_registry_path, framework_key, framework_sdk_key, framework_version)
|
|
54
|
+
@framework_registry_path = framework_registry_path
|
|
55
|
+
@framework_sdk_registry_path = framework_sdk_registry_path
|
|
56
|
+
@framework_registry_key = framework_key
|
|
57
|
+
@framework_sdk_registry_key = framework_sdk_key
|
|
58
|
+
@framework_version = framework_version
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../lib/dotnet/framework'
|
|
2
|
-
require 'test/unit'
|
|
3
|
-
require 'mocha'
|
|
4
|
-
|
|
5
|
-
class WhenGettingFrameworkInformation < Test::Unit::TestCase
|
|
6
|
-
|
|
7
|
-
def test_should_load_frameworks_if_not_already_loaded
|
|
8
|
-
framework = 'framework'
|
|
9
|
-
ENV['framework'] = framework
|
|
10
|
-
configatron.frameworks.stubs(:nil?).returns(true)
|
|
11
|
-
configatron.expects(:configure_from_yaml)
|
|
12
|
-
configatron.frameworks.stubs(:retrieve).with(framework).returns({framework => {}})
|
|
13
|
-
Rubicant::DotNet::Framework.stubs(:new).returns(mock())
|
|
14
|
-
|
|
15
|
-
Rubicant::DotNet::Frameworks.get_framework()
|
|
16
|
-
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def test_should_fail_if_requested_framework_is_not_in_configuration
|
|
20
|
-
begin
|
|
21
|
-
framework = 'framework'
|
|
22
|
-
ENV['framework'] = framework
|
|
23
|
-
configatron.frameworks.stubs(:nil?).returns(false)
|
|
24
|
-
configatron.frameworks.stubs(:retrieve).with(framework).returns(nil)
|
|
25
|
-
|
|
26
|
-
Rubicant::DotNet::Frameworks.get_framework()
|
|
27
|
-
|
|
28
|
-
fail('I wanted a runtime error to be thrown')
|
|
29
|
-
rescue RuntimeError => re
|
|
30
|
-
assert_equal(re.message, 'Requested framework does not exist in configuration')
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def test_should_get_back_framework_if_exists_in_configuration
|
|
36
|
-
framework = mock()
|
|
37
|
-
frameworkName = 'framework'
|
|
38
|
-
ENV['framework'] = frameworkName
|
|
39
|
-
frameworkConfiguration = {frameworkName => {}}
|
|
40
|
-
|
|
41
|
-
configatron.frameworks.stubs(:nil?).returns(false)
|
|
42
|
-
configatron.frameworks.stubs(:retrieve).with(frameworkName).returns(frameworkConfiguration)
|
|
43
|
-
|
|
44
|
-
Rubicant::DotNet::Framework.expects(:new).with(frameworkConfiguration).returns(framework)
|
|
45
|
-
|
|
46
|
-
result = Rubicant::DotNet::Frameworks.get_framework()
|
|
47
|
-
assert_equal framework, result
|
|
48
|
-
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def test_should_default_to_net35_if_no_framework_specified
|
|
52
|
-
framework = mock()
|
|
53
|
-
ENV['framework'] = nil
|
|
54
|
-
frameworkConfiguration = {'net35' => {}}
|
|
55
|
-
|
|
56
|
-
configatron.frameworks.stubs(:nil?).returns(false)
|
|
57
|
-
configatron.frameworks.expects(:retrieve).with('net35').returns(frameworkConfiguration)
|
|
58
|
-
frameworkConfiguration.stubs(:nil?).returns(false)
|
|
59
|
-
Rubicant::DotNet::Framework.stubs(:new).with(frameworkConfiguration).returns(framework)
|
|
60
|
-
|
|
61
|
-
Rubicant::DotNet::Frameworks.get_framework()
|
|
62
|
-
end
|
|
63
|
-
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../lib/dotnet/framework'
|
|
2
|
+
require 'test/unit'
|
|
3
|
+
require 'mocha'
|
|
4
|
+
|
|
5
|
+
class WhenGettingFrameworkInformation < Test::Unit::TestCase
|
|
6
|
+
|
|
7
|
+
def test_should_load_frameworks_if_not_already_loaded
|
|
8
|
+
framework = 'framework'
|
|
9
|
+
ENV['framework'] = framework
|
|
10
|
+
configatron.frameworks.stubs(:nil?).returns(true)
|
|
11
|
+
configatron.expects(:configure_from_yaml)
|
|
12
|
+
configatron.frameworks.stubs(:retrieve).with(framework).returns({framework => {}})
|
|
13
|
+
Rubicant::DotNet::Framework.stubs(:new).returns(mock())
|
|
14
|
+
|
|
15
|
+
Rubicant::DotNet::Frameworks.get_framework()
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_should_fail_if_requested_framework_is_not_in_configuration
|
|
20
|
+
begin
|
|
21
|
+
framework = 'framework'
|
|
22
|
+
ENV['framework'] = framework
|
|
23
|
+
configatron.frameworks.stubs(:nil?).returns(false)
|
|
24
|
+
configatron.frameworks.stubs(:retrieve).with(framework).returns(nil)
|
|
25
|
+
|
|
26
|
+
Rubicant::DotNet::Frameworks.get_framework()
|
|
27
|
+
|
|
28
|
+
fail('I wanted a runtime error to be thrown')
|
|
29
|
+
rescue RuntimeError => re
|
|
30
|
+
assert_equal(re.message, 'Requested framework does not exist in configuration')
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_should_get_back_framework_if_exists_in_configuration
|
|
36
|
+
framework = mock()
|
|
37
|
+
frameworkName = 'framework'
|
|
38
|
+
ENV['framework'] = frameworkName
|
|
39
|
+
frameworkConfiguration = {frameworkName => {}}
|
|
40
|
+
|
|
41
|
+
configatron.frameworks.stubs(:nil?).returns(false)
|
|
42
|
+
configatron.frameworks.stubs(:retrieve).with(frameworkName).returns(frameworkConfiguration)
|
|
43
|
+
|
|
44
|
+
Rubicant::DotNet::Framework.expects(:new).with(frameworkConfiguration).returns(framework)
|
|
45
|
+
|
|
46
|
+
result = Rubicant::DotNet::Frameworks.get_framework()
|
|
47
|
+
assert_equal framework, result
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_should_default_to_net35_if_no_framework_specified
|
|
52
|
+
framework = mock()
|
|
53
|
+
ENV['framework'] = nil
|
|
54
|
+
frameworkConfiguration = {'net35' => {}}
|
|
55
|
+
|
|
56
|
+
configatron.frameworks.stubs(:nil?).returns(false)
|
|
57
|
+
configatron.frameworks.expects(:retrieve).with('net35').returns(frameworkConfiguration)
|
|
58
|
+
frameworkConfiguration.stubs(:nil?).returns(false)
|
|
59
|
+
Rubicant::DotNet::Framework.stubs(:new).with(frameworkConfiguration).returns(framework)
|
|
60
|
+
|
|
61
|
+
Rubicant::DotNet::Frameworks.get_framework()
|
|
62
|
+
end
|
|
63
|
+
|
|
64
64
|
end
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../lib/runners/file_tasks'
|
|
2
|
-
require 'test/unit'
|
|
3
|
-
require 'mocha'
|
|
4
|
-
require 'rake'
|
|
5
|
-
|
|
6
|
-
class WhenCallingCopyFilesTask < Test::Unit::TestCase
|
|
7
|
-
|
|
8
|
-
def test_should_fail_when_calling_copyfiles_without_target_dir_parameter
|
|
9
|
-
begin
|
|
10
|
-
cf = Rubicant::Runners::CopyFiles.new
|
|
11
|
-
cf.run
|
|
12
|
-
|
|
13
|
-
assert.fail('Should get RuntimeError requiring target')
|
|
14
|
-
|
|
15
|
-
rescue RuntimeError => re
|
|
16
|
-
assert_equal('Target directory must be defined (:target_dir)', re.message)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def test_should_fail_when_calling_copyfiles_without_file_globs_parameter
|
|
21
|
-
begin
|
|
22
|
-
cf =Rubicant::Runners::CopyFiles.new
|
|
23
|
-
cf.settings[:target_dir] = "target_dir"
|
|
24
|
-
cf.run
|
|
25
|
-
|
|
26
|
-
assert.fail('Should get RuntimeError requiring target')
|
|
27
|
-
|
|
28
|
-
rescue RuntimeError => re
|
|
29
|
-
assert_equal('Source files must be defined (:file_globs)', re.message)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def test_should_fail_when_calling_copyfiles_without_base_dir_parameter
|
|
34
|
-
begin
|
|
35
|
-
cf = Rubicant::Runners::CopyFiles.new
|
|
36
|
-
cf.settings[:target_dir] = "target_dir"
|
|
37
|
-
cf.settings[:file_globs] = "**/*"
|
|
38
|
-
cf.run
|
|
39
|
-
|
|
40
|
-
assert.fail('Should get RuntimeError requiring target')
|
|
41
|
-
|
|
42
|
-
rescue RuntimeError => re
|
|
43
|
-
assert_equal('Base directory must be defined (:base_dir)', re.message)
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../lib/runners/file_tasks'
|
|
2
|
+
require 'test/unit'
|
|
3
|
+
require 'mocha'
|
|
4
|
+
require 'rake'
|
|
5
|
+
|
|
6
|
+
class WhenCallingCopyFilesTask < Test::Unit::TestCase
|
|
7
|
+
|
|
8
|
+
def test_should_fail_when_calling_copyfiles_without_target_dir_parameter
|
|
9
|
+
begin
|
|
10
|
+
cf = Rubicant::Runners::CopyFiles.new
|
|
11
|
+
cf.run
|
|
12
|
+
|
|
13
|
+
assert.fail('Should get RuntimeError requiring target')
|
|
14
|
+
|
|
15
|
+
rescue RuntimeError => re
|
|
16
|
+
assert_equal('Target directory must be defined (:target_dir)', re.message)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_should_fail_when_calling_copyfiles_without_file_globs_parameter
|
|
21
|
+
begin
|
|
22
|
+
cf =Rubicant::Runners::CopyFiles.new
|
|
23
|
+
cf.settings[:target_dir] = "target_dir"
|
|
24
|
+
cf.run
|
|
25
|
+
|
|
26
|
+
assert.fail('Should get RuntimeError requiring target')
|
|
27
|
+
|
|
28
|
+
rescue RuntimeError => re
|
|
29
|
+
assert_equal('Source files must be defined (:file_globs)', re.message)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test_should_fail_when_calling_copyfiles_without_base_dir_parameter
|
|
34
|
+
begin
|
|
35
|
+
cf = Rubicant::Runners::CopyFiles.new
|
|
36
|
+
cf.settings[:target_dir] = "target_dir"
|
|
37
|
+
cf.settings[:file_globs] = "**/*"
|
|
38
|
+
cf.run
|
|
39
|
+
|
|
40
|
+
assert.fail('Should get RuntimeError requiring target')
|
|
41
|
+
|
|
42
|
+
rescue RuntimeError => re
|
|
43
|
+
assert_equal('Base directory must be defined (:base_dir)', re.message)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
48
|
end
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../lib/runners/compiler_runners'
|
|
2
|
-
require 'test/unit'
|
|
3
|
-
require 'mocha'
|
|
4
|
-
require File.dirname(__FILE__) + '/../../../lib/facades'
|
|
5
|
-
|
|
6
|
-
class WhenCallingCscRunner < Test::Unit::TestCase
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def setup
|
|
10
|
-
@framework_dir = 'frameworkDir'
|
|
11
|
-
@framework = mock()
|
|
12
|
-
@framework.stubs(:framework_dir).returns(@framework_dir)
|
|
13
|
-
Rubicant::DotNet::Frameworks.expects(:get_framework).returns(@framework)
|
|
14
|
-
@rsp_file = "@#{ENV['TEMP']}/csc.rsp"
|
|
15
|
-
Rubicant::Runner.expects(:sh).with("frameworkDir\\csc.exe #{@rsp_file}")
|
|
16
|
-
|
|
17
|
-
@mock_file = mock()
|
|
18
|
-
File.stubs(:new).with("#{ENV['TEMP']}/csc.rsp", "w").returns(@mock_file)
|
|
19
|
-
@mock_file.stubs(:close)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def test_should_call_csc_with_rsp_file_even_with_no_parameters
|
|
23
|
-
|
|
24
|
-
csc = Rubicant::Runners::CscRunner.new
|
|
25
|
-
csc.run
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def test_should_call_csc_with_target_parameter
|
|
29
|
-
target = 'library'
|
|
30
|
-
|
|
31
|
-
@mock_file.expects(:puts).with(" /target:#{target}")
|
|
32
|
-
csc = Rubicant::Runners::CscRunner.new
|
|
33
|
-
csc.settings[:target] = target
|
|
34
|
-
csc.run
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def test_should_call_csc_with_reference_parameter
|
|
38
|
-
foo = 'foo.dll'
|
|
39
|
-
bar = 'bar.dll'
|
|
40
|
-
|
|
41
|
-
@mock_file.expects(:puts).with(" /reference:#{foo};#{bar}")
|
|
42
|
-
|
|
43
|
-
csc = Rubicant::Runners::CscRunner.new
|
|
44
|
-
csc.settings[:references] = [foo, bar]
|
|
45
|
-
csc.run
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def test_should_call_csc_with_out_parameter
|
|
49
|
-
out = "outfile.dll"
|
|
50
|
-
|
|
51
|
-
@mock_file.expects(:puts).with(" /out:#{out}")
|
|
52
|
-
csc = Rubicant::Runners::CscRunner.new
|
|
53
|
-
csc.settings[:out] = out
|
|
54
|
-
csc.run
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def test_should_call_csc_with_files
|
|
58
|
-
foo = 'foo.cs'
|
|
59
|
-
bar = 'bar.cs'
|
|
60
|
-
@mock_file.expects(:puts).with(" #{foo} #{bar}")
|
|
61
|
-
csc = Rubicant::Runners::CscRunner.new
|
|
62
|
-
csc.settings[:files] = [foo, bar]
|
|
63
|
-
csc.run
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def test_should_call_csc_with_debug
|
|
67
|
-
|
|
68
|
-
@mock_file.expects(:puts).with(" /debug:full")
|
|
69
|
-
csc = Rubicant::Runners::CscRunner.new
|
|
70
|
-
csc.settings[:debug] = true
|
|
71
|
-
csc.run
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
end
|
|
75
|
-
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../lib/runners/compiler_runners'
|
|
2
|
+
require 'test/unit'
|
|
3
|
+
require 'mocha'
|
|
4
|
+
require File.dirname(__FILE__) + '/../../../lib/facades'
|
|
5
|
+
|
|
6
|
+
class WhenCallingCscRunner < Test::Unit::TestCase
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def setup
|
|
10
|
+
@framework_dir = 'frameworkDir'
|
|
11
|
+
@framework = mock()
|
|
12
|
+
@framework.stubs(:framework_dir).returns(@framework_dir)
|
|
13
|
+
Rubicant::DotNet::Frameworks.expects(:get_framework).returns(@framework)
|
|
14
|
+
@rsp_file = "@#{ENV['TEMP']}/csc.rsp"
|
|
15
|
+
Rubicant::Runner.expects(:sh).with("frameworkDir\\csc.exe #{@rsp_file}")
|
|
16
|
+
|
|
17
|
+
@mock_file = mock()
|
|
18
|
+
File.stubs(:new).with("#{ENV['TEMP']}/csc.rsp", "w").returns(@mock_file)
|
|
19
|
+
@mock_file.stubs(:close)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_should_call_csc_with_rsp_file_even_with_no_parameters
|
|
23
|
+
|
|
24
|
+
csc = Rubicant::Runners::CscRunner.new
|
|
25
|
+
csc.run
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_should_call_csc_with_target_parameter
|
|
29
|
+
target = 'library'
|
|
30
|
+
|
|
31
|
+
@mock_file.expects(:puts).with(" /target:#{target}")
|
|
32
|
+
csc = Rubicant::Runners::CscRunner.new
|
|
33
|
+
csc.settings[:target] = target
|
|
34
|
+
csc.run
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_should_call_csc_with_reference_parameter
|
|
38
|
+
foo = 'foo.dll'
|
|
39
|
+
bar = 'bar.dll'
|
|
40
|
+
|
|
41
|
+
@mock_file.expects(:puts).with(" /reference:#{foo};#{bar}")
|
|
42
|
+
|
|
43
|
+
csc = Rubicant::Runners::CscRunner.new
|
|
44
|
+
csc.settings[:references] = [foo, bar]
|
|
45
|
+
csc.run
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_should_call_csc_with_out_parameter
|
|
49
|
+
out = "outfile.dll"
|
|
50
|
+
|
|
51
|
+
@mock_file.expects(:puts).with(" /out:#{out}")
|
|
52
|
+
csc = Rubicant::Runners::CscRunner.new
|
|
53
|
+
csc.settings[:out] = out
|
|
54
|
+
csc.run
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_should_call_csc_with_files
|
|
58
|
+
foo = 'foo.cs'
|
|
59
|
+
bar = 'bar.cs'
|
|
60
|
+
@mock_file.expects(:puts).with(" #{foo} #{bar}")
|
|
61
|
+
csc = Rubicant::Runners::CscRunner.new
|
|
62
|
+
csc.settings[:files] = [foo, bar]
|
|
63
|
+
csc.run
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_should_call_csc_with_debug
|
|
67
|
+
|
|
68
|
+
@mock_file.expects(:puts).with(" /debug:full")
|
|
69
|
+
csc = Rubicant::Runners::CscRunner.new
|
|
70
|
+
csc.settings[:debug] = true
|
|
71
|
+
csc.run
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
end
|
|
75
|
+
|
|
@@ -104,7 +104,7 @@ class WhenCallingMsBuildRunner < Test::Unit::TestCase
|
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
def test_should_set_properties
|
|
107
|
-
properties = {
|
|
107
|
+
properties = { 'key1' => "val1", 'key2' => "val2"}
|
|
108
108
|
@mock_file.expects(:puts).with(" /property:key1=val1;key2=val2")
|
|
109
109
|
|
|
110
110
|
msb = Rubicant::Runners::MsBuildRunner.new
|
|
@@ -181,7 +181,7 @@ class WhenCallingMsBuildRunner < Test::Unit::TestCase
|
|
|
181
181
|
end
|
|
182
182
|
|
|
183
183
|
def test_should_set_file_logger_parameters
|
|
184
|
-
file_logger_parameters = {
|
|
184
|
+
file_logger_parameters = { 'key1' => "val1", 'key2' => "val2"}
|
|
185
185
|
@mock_file.expects(:puts).with(" /fileloggerparameters:key1=val1;key2=val2")
|
|
186
186
|
|
|
187
187
|
msb = Rubicant::Runners::MsBuildRunner.new
|