albacore 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/EULA.txt +1 -1
  2. data/VERSION +1 -1
  3. data/lib/albacore.rb +4 -4
  4. data/lib/albacore/ncoverconsole.rb +4 -4
  5. data/lib/albacore/ncoverreport.rb +3 -3
  6. data/lib/albacore/ndepend.rb +3 -3
  7. data/lib/albacore/nunittestrunner.rb +1 -1
  8. data/lib/albacore/plink.rb +4 -3
  9. data/lib/albacore/renamer.rb +17 -0
  10. data/lib/albacore/sqlcmd.rb +3 -3
  11. data/lib/albacore/support/failure.rb +1 -8
  12. data/lib/rake/assemblyinfotask.rb +2 -16
  13. data/lib/rake/docutask.rb +2 -16
  14. data/lib/rake/exectask.rb +3 -18
  15. data/lib/rake/expandtemplatestask.rb +2 -15
  16. data/lib/rake/msbuildtask.rb +2 -17
  17. data/lib/rake/mspectask.rb +2 -16
  18. data/lib/rake/nanttask.rb +2 -16
  19. data/lib/rake/ncoverconsoletask.rb +3 -17
  20. data/lib/rake/ncoverreporttask.rb +3 -17
  21. data/lib/rake/ndependtask.rb +3 -21
  22. data/lib/rake/nunittask.rb +3 -17
  23. data/lib/rake/plinktask.rb +3 -23
  24. data/lib/rake/renametask.rb +2 -19
  25. data/lib/rake/sftptask.rb +3 -16
  26. data/lib/rake/sqlcmdtask.rb +2 -16
  27. data/lib/rake/sshtask.rb +2 -15
  28. data/lib/rake/support/albacoretask.rb +16 -6
  29. data/lib/rake/support/createtask.rb +20 -0
  30. data/lib/rake/unziptask.rb +2 -16
  31. data/lib/rake/xbuildtask.rb +4 -19
  32. data/lib/rake/xunittask.rb +2 -16
  33. data/lib/rake/ziptask.rb +2 -16
  34. data/rakefile.rb +6 -6
  35. data/spec/assemblyinfo_spec.rb +2 -0
  36. data/spec/assemblyinfotask_spec.rb +13 -12
  37. data/spec/createtask_spec.rb +70 -0
  38. data/spec/docutask_spec.rb +34 -21
  39. data/spec/exec_spec.rb +2 -1
  40. data/spec/exectask_spec.rb +25 -10
  41. data/spec/expandtemplatestask_spec.rb +25 -10
  42. data/spec/msbuild_spec.rb +2 -1
  43. data/spec/msbuildtask_spec.rb +25 -10
  44. data/spec/mspectask_spec.rb +25 -10
  45. data/spec/nant_spec.rb +2 -1
  46. data/spec/nanttask_spec.rb +24 -9
  47. data/spec/ncoverconsole_spec.rb +16 -8
  48. data/spec/ncoverconsoletask_spec.rb +25 -10
  49. data/spec/ncoverreport_spec.rb +27 -13
  50. data/spec/ncoverreporttask_spec.rb +25 -10
  51. data/spec/ndepend_spec.rb +3 -1
  52. data/spec/ndependtask_spec.rb +37 -22
  53. data/spec/nunittask_spec.rb +25 -10
  54. data/spec/nunittestrunner_spec.rb +3 -3
  55. data/spec/patches/fail_patch.rb +9 -0
  56. data/spec/plink_spec.rb +1 -0
  57. data/spec/plinktask_spec.rb +37 -22
  58. data/spec/renametask_spec.rb +13 -11
  59. data/spec/sftptask_spec.rb +11 -10
  60. data/spec/sqlcmd_spec.rb +4 -2
  61. data/spec/sqlcmdtask_spec.rb +11 -10
  62. data/spec/sshtask_spec.rb +11 -10
  63. data/spec/support/spec_helper.rb +2 -1
  64. data/spec/xunit_spec.rb +2 -2
  65. data/spec/xunittask_spec.rb +11 -10
  66. data/spec/ziptask_spec.rb +12 -11
  67. metadata +10 -7
  68. data/spec/patches/tasklib_patch.rb +0 -12
@@ -1,20 +1,3 @@
1
- require 'rake/tasklib'
2
-
3
- def rename(name=:rename, *args, &block)
4
- Albacore::RenameTask.new(name, *args, &block)
5
- end
6
-
7
- module Albacore
8
- class RenameTask < Albacore::AlbacoreTask
9
- attr_accessor :actual_name, :target_name
10
-
11
- def execute(name, task_args)
12
- @block.call(self, *task_args) unless @block.nil?
13
- if (@actual_name.nil? || @target_name.nil?)
14
- fail
15
- else
16
- File.rename(@actual_name, @target_name)
17
- end
18
- end
19
- end
1
+ create_task :rename, Renamer.new do |ren|
2
+ ren.rename
20
3
  end
@@ -1,16 +1,3 @@
1
- require 'rake/tasklib'
2
-
3
- def sftp(name=:sftp, *args, &block)
4
- Albacore::SftpTask.new(name, *args, &block)
5
- end
6
-
7
- module Albacore
8
- class SftpTask < Albacore::AlbacoreTask
9
- def execute(name, task_args)
10
- @sftp = Sftp.new
11
- @sftp.load_config_by_task_name(name)
12
- @block.call(@sftp, *task_args) unless @block.nil?
13
- @sftp.upload
14
- end
15
- end
16
- end
1
+ create_task :sftp, Sftp.new do |cmd|
2
+ cmd.upload
3
+ end
@@ -1,17 +1,3 @@
1
- require 'rake/tasklib'
2
-
3
- def sqlcmd(name=:sqlcmd, *args, &block)
4
- Albacore::SQLCmdTask.new(name, *args, &block)
5
- end
6
-
7
- module Albacore
8
- class SQLCmdTask < Albacore::AlbacoreTask
9
- def execute(name, task_args)
10
- @sqlcmd = SQLCmd.new
11
- @sqlcmd.load_config_by_task_name(name)
12
- @block.call(@sqlcmd, *task_args) unless @block.nil?
13
- @sqlcmd.run
14
- fail if @sqlcmd.failed
15
- end
16
- end
1
+ create_task :sqlcmd, SQLCmd.new do |cmd|
2
+ cmd.run
17
3
  end
@@ -1,16 +1,3 @@
1
- require 'rake/tasklib'
2
-
3
- def ssh(name=:ssh, *args, &block)
4
- Albacore::SshTask.new(name, *args, &block)
5
- end
6
-
7
- module Albacore
8
- class SshTask < Albacore::AlbacoreTask
9
- def execute(name, task_args)
10
- @ssh = Ssh.new
11
- @ssh.load_config_by_task_name(name)
12
- @block.call(@ssh, *task_args) unless @block.nil?
13
- @ssh.execute
14
- end
15
- end
1
+ create_task :ssh, Ssh.new do |cmd|
2
+ cmd.execute
16
3
  end
@@ -6,15 +6,25 @@ module Albacore
6
6
 
7
7
  def initialize(name, *args, &block)
8
8
  @block = block
9
- @args = args.insert(0, name)
10
- @name = name
11
- define
9
+ args = args.insert(0, name)
10
+ define name, args
12
11
  end
13
12
 
14
- def define
15
- task *@args do |task, task_args|
16
- execute @name.to_s, task_args
13
+ def define(name, args)
14
+ task *args do |task, task_args|
15
+ @task_args = task_args
16
+ execute name.to_s
17
17
  end
18
18
  end
19
+
20
+ def call_task_block(obj)
21
+ if !@block.nil?
22
+ if @block.arity == 1
23
+ @block.call(obj)
24
+ else
25
+ @block.call(obj, @task_args)
26
+ end
27
+ end
28
+ end
19
29
  end
20
30
  end
@@ -0,0 +1,20 @@
1
+ def create_task(taskname, task_object, &execute_body)
2
+ taskclass = :"Albacore_TaskFor_#{taskname}"
3
+ taskmethod = taskname.to_s.downcase.to_sym
4
+
5
+ Object.class_eval(<<-EOF, __FILE__, __LINE__)
6
+ def #{taskmethod}(name=:#{taskname}, *args, &block)
7
+ Albacore.const_get("#{taskclass}").new(name, *args, &block)
8
+ end
9
+ EOF
10
+
11
+ Albacore.class_eval do
12
+ const_set(taskclass, Class.new(Albacore::AlbacoreTask) do
13
+ define_method :execute do |name|
14
+ task_object.load_config_by_task_name(name)
15
+ call_task_block(task_object)
16
+ execute_body.call(task_object) unless execute_body.nil?
17
+ end
18
+ end)
19
+ end
20
+ end
@@ -1,17 +1,3 @@
1
- require 'rake/tasklib'
2
-
3
- def unzip(name=:unzip, *args, &block)
4
- Albacore::UnZipTask.new(name, *args, &block)
5
- end
6
-
7
- module Albacore
8
- class UnZipTask < Albacore::AlbacoreTask
9
- def execute(name, task_args)
10
- @zip = Unzip.new
11
- @zip.load_config_by_task_name(name)
12
- @block.call(@zip, *task_args) unless @block.nil?
13
- @zip.unzip
14
- fail if @zip.failed
15
- end
16
- end
1
+ create_task :unzip, Unzip.new do |zip|
2
+ zip.unzip
17
3
  end
@@ -1,22 +1,7 @@
1
- require 'rake/tasklib'
2
-
3
- def xbuild(name=:xbuild, *args, &block)
4
- Albacore::XBuildTask.new(name, *args, &block)
1
+ create_task :xbuild, XBuild.new do |xb|
2
+ xb.build
5
3
  end
6
4
 
7
- def mono(name=:mono, *args, &block)
8
- Albacore::XBuildTask.new(name, *args, &block)
9
- end
10
-
11
- module Albacore
12
- class XBuildTask < Albacore::AlbacoreTask
13
- def execute(name, task_args)
14
- @xbuild = XBuild.new
15
- @xbuild.load_config_by_task_name(name)
16
- @block.call(@xbuild, *task_args) unless @block.nil?
17
- @xbuild.build
18
- fail if @xbuild.failed
19
- end
20
- end
21
-
5
+ create_task :mono, XBuild.new do |xb|
6
+ xb.build
22
7
  end
@@ -1,17 +1,3 @@
1
- require 'rake/tasklib'
2
-
3
- def xunit(name=:xunit, *args, &block)
4
- Albacore::XUnitTask.new(name, *args, &block)
5
- end
6
-
7
- module Albacore
8
- class XUnitTask < Albacore::AlbacoreTask
9
- def execute(name, task_args)
10
- @xunit = XUnitTestRunner.new
11
- @xunit.load_config_by_task_name(name)
12
- @block.call(@xunit, *task_args) unless @block.nil?
13
- @xunit.execute
14
- fail if @xunit.failed
15
- end
16
- end
1
+ create_task :xunit, XUnitTestRunner.new do |x|
2
+ x.execute
17
3
  end
@@ -1,17 +1,3 @@
1
- require 'rake/tasklib'
2
-
3
- def zip(name=:zip, *args, &block)
4
- Albacore::ZipTask.new(name, *args, &block)
5
- end
6
-
7
- module Albacore
8
- class ZipTask < Albacore::AlbacoreTask
9
- def execute(name, task_args)
10
- @zip = ZipDirectory.new
11
- @zip.load_config_by_task_name(name)
12
- @block.call(@zip, *task_args) unless @block.nil?
13
- @zip.package
14
- fail if @zip.failed
15
- end
16
- end
1
+ create_task :zip, ZipDirectory.new do |z|
2
+ z.package
17
3
  end
@@ -1,3 +1,5 @@
1
+ require 'lib/albacore'
2
+
1
3
  task :default => ['albacore:sample']
2
4
 
3
5
  namespace :specs do
@@ -134,8 +136,6 @@ namespace :specs do
134
136
  end
135
137
 
136
138
  namespace :albacore do
137
- require 'lib/albacore'
138
-
139
139
  #global configuration options
140
140
  Albacore::yaml_config_folder = "spec/support/yamlconfig"
141
141
  Albacore::log_level = :verbose
@@ -151,7 +151,7 @@ namespace :albacore do
151
151
  'albacore:xunit']
152
152
 
153
153
  desc "Run a sample MSBuild with YAML autoconfig"
154
- msbuild
154
+ msbuild :msbuild
155
155
 
156
156
  desc "Run a sample assembly info generator"
157
157
  assemblyinfo do |asm|
@@ -258,11 +258,11 @@ namespace :jeweler do
258
258
  require 'jeweler'
259
259
  Jeweler::Tasks.new do |gs|
260
260
  gs.name = "albacore"
261
- gs.summary = "A Suite of Rake Build Tasks For .Net Solutions"
262
- gs.description = "Easily build your .NET solutions with rake, using this suite of rake tasks."
261
+ gs.summary = "Dolphin-Safe Rake Tasks For .NET Systems"
262
+ gs.description = "Easily build your .NET solutions with Ruby and Rake, using this suite of Rake tasks."
263
263
  gs.email = "derickbailey@gmail.com"
264
264
  gs.homepage = "http://albacorebuild.net"
265
- gs.authors = ["Derick Bailey", "Ben Hall", "Steven Harman"]
265
+ gs.authors = ["Derick Bailey", "Ben Hall"]
266
266
  gs.has_rdoc = false
267
267
  gs.files.exclude("albacore.gemspec", ".gitignore", "spec/support/Tools")
268
268
 
@@ -46,6 +46,8 @@ describe AssemblyInfo, "when generating an assembly info file without an output
46
46
  before :all do
47
47
  @tester = AssemblyInfoTester.new
48
48
  asm = AssemblyInfo.new
49
+ asm.extend(FailPatch)
50
+
49
51
  strio = StringIO.new
50
52
  asm.log_device = strio
51
53
 
@@ -1,15 +1,15 @@
1
1
  require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
2
2
  require 'albacore/assemblyinfo'
3
3
  require 'rake/assemblyinfotask'
4
- require 'tasklib_patch'
4
+ require 'fail_patch'
5
5
 
6
- describe Albacore::AssemblyInfoTask, "when running" do
6
+ describe "when running" do
7
7
  before :all do
8
- @task = Albacore::AssemblyInfoTask.new(:task) do |t|
9
- @yielded_object = t
10
- end
11
- @task.extend(TasklibPatch)
12
- Rake::Task["task"].invoke
8
+ assemblyinfo :assemblyinfo do |asm|
9
+ asm.extend(FailPatch)
10
+ @yielded_object = asm
11
+ end
12
+ Rake::Task["assemblyinfo"].invoke
13
13
  end
14
14
 
15
15
  it "should yield the assembly info api" do
@@ -17,15 +17,16 @@ describe Albacore::AssemblyInfoTask, "when running" do
17
17
  end
18
18
  end
19
19
 
20
- describe Albacore::AssemblyInfoTask, "when execution fails" do
20
+ describe "when execution fails" do
21
21
  before :all do
22
- @task = Albacore::AssemblyInfoTask.new(:failingtask)
23
- @task.extend(TasklibPatch)
24
- @task.fail
22
+ assemblyinfo :failingtask do |asm|
23
+ asm.extend(FailPatch)
24
+ asm.fail
25
+ end
25
26
  Rake::Task["failingtask"].invoke
26
27
  end
27
28
 
28
29
  it "should fail the rake task" do
29
- @task.task_failed.should == true
30
+ $task_failed.should == true
30
31
  end
31
32
  end
@@ -0,0 +1,70 @@
1
+ require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
2
+ require 'albacore/support/albacore_helper'
3
+ require 'fail_patch'
4
+
5
+ class SampleObject
6
+ include Failure
7
+ include YAMLConfig
8
+ end
9
+
10
+ describe "when defining a task" do
11
+ before :all do
12
+ @sample_object = SampleObject.stub_instance()
13
+ @sample_object.stub_method(:load_config_by_task_name){ |name|
14
+ @task_name = name
15
+ }
16
+ create_task :sampletask, @sample_object do |obj|
17
+ @task_obj = obj
18
+ end
19
+
20
+ sampletask :sample do |x|
21
+ x.extend(FailPatch)
22
+ @config_obj = x
23
+ end
24
+ Rake::Task[:sample].invoke
25
+ end
26
+
27
+ it "should yield the object for configuration" do
28
+ @config_obj.should == @sample_object
29
+ end
30
+
31
+ it "should yield the object for execution" do
32
+ @task_obj.should == @sample_object
33
+ end
34
+
35
+ it "should call the yaml configuration by task name" do
36
+ @task_name.should == "sample"
37
+ end
38
+ end
39
+
40
+ describe "when execution fails" do
41
+ before :all do
42
+ create_task :failing_task, SampleObject.new
43
+
44
+ failing_task :sample_fail do |x|
45
+ x.extend(FailPatch)
46
+ x.fail
47
+ end
48
+ Rake::Task[:sample_fail].invoke
49
+ end
50
+
51
+ it "should fail the rake task" do
52
+ $task_failed.should == true
53
+ end
54
+ end
55
+
56
+ describe "when task args are used" do
57
+ before :all do
58
+ create_task :task_with_args, SampleObject.new
59
+
60
+ task_with_args :sampletask_withargs, [:arg1] do |t, args|
61
+ t.extend(FailPatch)
62
+ @args = args
63
+ end
64
+ Rake::Task[:sampletask_withargs].invoke("test")
65
+ end
66
+
67
+ it "should provide the task args" do
68
+ @args.arg1.should == "test"
69
+ end
70
+ end
@@ -1,19 +1,18 @@
1
1
  require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
2
2
  require 'albacore/docu'
3
3
  require 'rake/docutask'
4
- require 'tasklib_patch'
4
+ require 'fail_patch'
5
+ require 'system_patch'
5
6
  require 'docu_patch'
6
7
 
7
- describe Albacore::DocuTask, "when running" do
8
+ describe "when running" do
8
9
  before :all do
9
- task = Albacore::DocuTask.new(:successful_task) do |t|
10
- t.assemblies << 'test.dll'
11
- t.command_result = true
12
- @yielded_object = t
13
- end
14
-
15
- task.extend(TasklibPatch)
16
- Rake::Task[:successful_task].invoke
10
+ docu :docu do |d|
11
+ d.assemblies 'test.dll'
12
+ d.command_result = true
13
+ @yielded_object = d
14
+ end
15
+ Rake::Task[:docu].invoke
17
16
  end
18
17
 
19
18
  it "should yield the docu api" do
@@ -21,19 +20,33 @@ describe Albacore::DocuTask, "when running" do
21
20
  end
22
21
  end
23
22
 
24
- describe Albacore::DocuTask, "when execution fails" do
23
+ describe "when execution fails" do
25
24
  before :all do
26
- @task = Albacore::DocuTask.new(:failing_task) do |t|
27
- t.command_result = false
28
- t.assemblies << 'test.dll'
29
- end
30
-
31
- @task.extend(TasklibPatch)
32
-
33
- Rake::Task[:failing_task].invoke
25
+ docu :docu_fail do |d|
26
+ d.extend(FailPatch)
27
+ d.assemblies 'test.dll'
28
+ d.command_result = true
29
+ d.fail
30
+ end
31
+ Rake::Task[:docu_fail].invoke
34
32
  end
35
33
 
36
34
  it "should fail the rake task" do
37
- @task.task_failed.should == true
35
+ $task_failed.should be_true
38
36
  end
39
- end
37
+ end
38
+
39
+ describe "when task args are used" do
40
+ before :all do
41
+ docu :docutask_withargs, [:arg1] do |d, args|
42
+ d.assemblies 'test.dll'
43
+ d.command_result = true
44
+ @args = args
45
+ end
46
+ Rake::Task["docutask_withargs"].invoke("test")
47
+ end
48
+
49
+ it "should provide the task args" do
50
+ @args.arg1.should == "test"
51
+ end
52
+ end