<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,4 +1,4 @@
-=== 0.1.16 / 2009-10-04
+=== 0.2.0 / 2009-10-12
 
 BREAKING CHANGE: Moved all classes that were in the Rake module, into the RakeDotNet module.  So, change your Rakefile from (eg)
 
@@ -8,9 +8,16 @@ to
 
 `RakeDotNet:AssemblyInfoTask.new
 
+BREAKING CHANGE: Renamed all command-line wrappers to end with Cmd indicating inheritance from Cmd base class which does path inference
+
+CHANGE: Addition of unit-tests via spec
+CHANGE: Added unit-test report to the gem
+CHANGE: Added rcov reports to the gem
 CHANGE: Made it the RDNPackageTask's responsibility to name directories and packages with the configuration &amp; version information, if configured to.  This means that intermediate-build-output is put into directories without this information in the naming.
+
 NEW: sqlcmd.exe wrapper (SQL client tools' execute-sql-command from command-line)
 NEW: bcp.exe wrapper (SQL client tools' bulk copy)
+NEW: IIS7 appcmd.exe wrapper (control IIS7 from the command line)
 
 
 === 0.1.15 / 2009-09-23</diff>
      <filename>History.txt</filename>
    </modified>
    <modified>
      <diff>@@ -9,8 +9,37 @@ coverage/lib-bcpcmd_rb.html
 coverage/lib-cli_rb.html
 coverage/lib-fxcop_rb.html
 coverage/lib-harvester_rb.html
+coverage/lib-iisappcmd_rb.html
+coverage/lib-msbuild_rb.html
+coverage/lib-ncover_rb.html
+coverage/lib-package_rb.html
+coverage/lib-sevenzip_rb.html
+coverage/lib-sqlcmd_rb.html
+coverage/lib-svn_rb.html
+coverage/lib-version_rb.html
+coverage/lib-xunit_rb.html
 doc/examples.html
 lib/rake_dotnet.rb
 lib/rake_dotnet/default_rakefile.rb
+spec/assemblyinfotask_spec.rb
+spec/bcpcmd_spec.rb
 spec/cli_spec.rb
-spec/svn_spec.rb
\ No newline at end of file
+spec/constants_spec.rb
+spec/fxcopcmd_spec.rb
+spec/fxcoptask_spec.rb
+spec/harvester_spec.rb
+spec/harvestoutputtask_spec.rb
+spec/harvestwebapplicationtask_spec.rb
+spec/iisappcmd_spec.rb
+spec/msbuildcmd_spec.rb
+spec/msbuildtask_spec.rb
+spec/ncoverconsolecmd_spec.rb
+spec/ncoverreportingcmd_spec.rb
+spec/ncovertask_spec.rb
+spec/rdnpackagetask_spec.rb
+spec/sevenzipcmd_spec.rb
+spec/sqlcmd_spec.rb
+spec/svncmd_spec.rb
+spec/versioner_spec.rb
+spec/xunitcmd_spec.rb
+spec/xunittask_spec.rb
\ No newline at end of file</diff>
      <filename>Manifest.txt</filename>
    </modified>
    <modified>
      <diff>@@ -62,5 +62,8 @@ end
 # vim: syntax=Ruby
 
 task :spec =&gt; generated_library
-task :install_gem =&gt; [:spec, :examples_with_rcov, :examples_with_report]
+file 'coverage/index.html'  =&gt; [:examples_with_rcov]
+file 'doc/examples.html'  =&gt; [:examples_with_report]
+
+task :package =&gt; [:spec, :examples_with_rcov, :examples_with_report]
 task :release =&gt; [:examples_with_rcov, :examples_with_report]
\ No newline at end of file</diff>
      <filename>Rakefile.rb</filename>
    </modified>
    <modified>
      <diff>@@ -54,7 +54,7 @@ class FxCopTask &lt; Rake::TaskLib
 	self
 end
 
-class FxCop
+class FxCopCmd
 	attr_accessor :dlls, :out_file, :out_xsl, :apply_out_xsl, :dependencies_path, :summary, :verbose, :echo_to_console, :xsl_echo_to_console, :ignore_autogen, :culture
 
 	def initialize(dlls, params={})</diff>
      <filename>lib/fxcop.rb</filename>
    </modified>
    <modified>
      <diff>@@ -0,0 +1,47 @@
+class IisAppCmd &lt; Cli
+	def initialize(params={})
+		sps = params[:search_paths] || []
+		sps &lt;&lt; File.join(ENV['systemroot'], 'system32', 'inetsrv')
+		super(params.merge({:exe_name=&gt;'appcmd.exe', :search_paths=&gt;sps}))
+	end
+end
+class AddSiteIisAppCmd &lt; IisAppCmd
+	def initialize(params={})
+		super
+		@path = params[:path]
+		@name = params[:name]
+		@id = params[:id]
+		@bindings = params[:bindings]
+	end
+
+	def bindings
+		if @bindings.nil?
+			return 'http://*:80'
+		elsif is_a? Array
+			return @bindings.join(',')
+		else
+			return @bindings
+		end
+	end
+
+	def name
+		return @name unless @name.nil?
+		pn = Pathname.new(@path)
+		exp = File.expand_path(pn.dirname)
+		return exp.gsub('/','\\')
+	end
+
+	def id
+		return @id unless @id.nil?
+		#TODO: Generate an ID
+	end
+
+	def cmd
+		return &quot;#{exe} add site /name:#{name} /id:#{id} /bindings:#{bindings} /path:#{@path}&quot;
+	end
+
+	def run
+		puts cmd if VERBOSE
+		sh cmd
+	end
+end
\ No newline at end of file</diff>
      <filename>lib/iisappcmd.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,7 +21,7 @@ class MsBuildTask &lt; Rake::TaskLib
 			pn = Pathname.new(r.name)
 			name = pn.basename.to_s.sub('.dll', '')
 			project = FileList.new(&quot;#{@src_dir}/#{name}/#{name}.*proj&quot;).first
-			mb = MsBuild.new(project, @properties, ['Build'], verbosity, @working_dir)
+			mb = MsBuildCmd.new(project, @properties, ['Build'], verbosity, @working_dir)
 			mb.run
 		end
 
@@ -30,7 +30,7 @@ class MsBuildTask &lt; Rake::TaskLib
 			pn = Pathname.new(r.name)
 			name = pn.basename.to_s.sub('.dll', '')
 			project = FileList.new(&quot;#{@src_dir}/#{name}/#{name}.*proj&quot;).first
-			mb = MsBuild.new(project, @properties, ['Build'], verbosity, @working_dir)
+			mb = MsBuildCmd.new(project, @properties, ['Build'], verbosity, @working_dir)
 			mb.run
 		end
 
@@ -62,7 +62,7 @@ class MsBuildTask &lt; Rake::TaskLib
 	end
 end
 
-class MsBuild
+class MsBuildCmd
 	attr_accessor :project, :properties, :targets, :verbosity
 
 	def initialize(project='default.proj', properties={}, targets=[], verbosity='n', working_dir=nil)</diff>
      <filename>lib/msbuild.rb</filename>
    </modified>
    <modified>
      <diff>@@ -24,7 +24,7 @@ class NCoverTask &lt; Rake::TaskLib
 		reports_dir_regex = RakeDotNet::regexify(@report_dir)
 		rule(/#{reports_dir_regex}\/.*\.coverage\.xml/) do |r|
 			dll_to_execute = r.name.sub(/#{@report_dir}\/(.*)\.coverage\.xml/, &quot;#{@bin_dir}/\\1.dll&quot;)
-			nc = NCover.new(@report_dir, dll_to_execute, @profile_options)
+			nc = NCoverConsoleCmd.new(@report_dir, dll_to_execute, @profile_options)
 			nc.run
 		end
 
@@ -48,7 +48,7 @@ class NCoverTask &lt; Rake::TaskLib
 			# ncover lets us use *.coverage.xml to merge together files
 			include = [File.join(@report_dir, '*.coverage.xml')]
 			@reporting_options[:name] = 'merged'
-			ncr = NCoverReporting.new(@report_dir, include, @reporting_options)
+			ncr = NCoverReportingCmd.new(@report_dir, include, @reporting_options)
 			ncr.run
 		end
 
@@ -60,7 +60,7 @@ class NCoverTask &lt; Rake::TaskLib
 	end
 end
 
-class NCover
+class NCoverConsoleCmd
 	def initialize(report_dir, dll_to_execute, params)
 		params ||= {}
 		arch = params[:arch] || ENV['PROCESSOR_ARCHITECTURE']
@@ -74,7 +74,7 @@ class NCover
 	end
 
 	def cmdToRun
-		x = XUnit.new(@dll_to_execute, '', nil, {})
+		x = XUnitConsoleCmd.new(@dll_to_execute, '', nil, {})
 		x.cmd
 	end
 
@@ -103,7 +103,7 @@ class NCover
 	end
 end
 
-class NCoverReporting
+class NCoverReportingCmd
 	def initialize(report_dir, coverage_files, params)
 		@report_dir = report_dir
 		@coverage_files = coverage_files || []</diff>
      <filename>lib/ncover.rb</filename>
    </modified>
    <modified>
      <diff>@@ -50,7 +50,7 @@ class RDNPackageTask &lt; Rake::TaskLib
 				end
 			end
 			snipped = pkg_root.sub(pkg + '/', '')
-			sz = SevenZip.new(package_file)
+			sz = SevenZipCmd.new(package_file)
 			chdir pkg_root do
 				sz.run_add
 			end</diff>
      <filename>lib/package.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,8 @@
 require 'rake'
 require 'rake_dotnet'
 
+Bin_out = File.join(RakeDotNet::OUT_DIR, 'bin')
+
 RakeDotNet::AssemblyInfoTask.new
 
 RakeDotNet::MsBuildTask.new({:deps=&gt;[RakeDotNet::Bin_out, :assembly_info]})</diff>
      <filename>lib/rake_dotnet/default_rakefile.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-class SevenZip
+class SevenZipCmd
 	def initialize(archive_name, opts={})
 		arch = ENV['PROCESSOR_ARCHITECTURE'] || 'AMD64'
 		bin = arch == 'x86' ? '7za.exe' : '7z.exe'</diff>
      <filename>lib/sevenzip.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-class Svn &lt; Cli
+class SvnCmd &lt; Cli
 	def initialize(params={})
 		sps = params[:search_paths] || []
 		sps &lt;&lt; File.join(TOOLS_DIR, 'svn', 'bin')
@@ -12,7 +12,7 @@ class Svn &lt; Cli
 	end
 end
 
-class SvnExport &lt; Svn
+class SvnExport &lt; SvnCmd
 	def initialize(params={})
 		super
 		raise(ArgumentError, &quot;src parameter was missing&quot;, caller) if params[:src].nil?
@@ -39,7 +39,7 @@ class SvnExport &lt; Svn
 	end
 end
 
-class SvnInfo &lt; Svn
+class SvnInfo &lt; SvnCmd
 	def initialize(params={})
 		super
 		@path = params[:path] || '.'</diff>
      <filename>lib/svn.rb</filename>
    </modified>
    <modified>
      <diff>@@ -23,7 +23,7 @@ class XUnitTask &lt; Rake::TaskLib
 			out_dir = File.join(@reports_dir, suite)
 			unless File.exist?(out_dir) &amp;&amp; uptodate?(testsDll, out_dir)
 				mkdir_p(out_dir) unless File.exist?(out_dir)
-				x = XUnit.new(testsDll, out_dir, nil, options=@options)
+				x = XUnitConsoleCmd.new(testsDll, out_dir, nil, options=@options)
 				x.run
 			end
 		end
@@ -47,7 +47,7 @@ class XUnitTask &lt; Rake::TaskLib
 	end
 end
 
-class XUnit
+class XUnitConsoleCmd
 	attr_accessor :xunit, :test_dll, :reports_dir, :options
 
 	def initialize(test_dll, reports_dir, xunit=nil, options={})</diff>
      <filename>lib/xunit.rb</filename>
    </modified>
    <modified>
      <diff>@@ -25,7 +25,7 @@ CLOBBER.include('out')
 
 task :xunit =&gt; [:build, report_dir] do
 	test_dll = File.join('..', 'DemoRoot', 'Demo', 'src', 'Demo.Unit.Tests', 'bin', CONFIGURATION, 'Demo.Unit.Tests.dll')
-	x = XUnit.new(test_dll, report_dir, nil, options={:html=&gt;true})
+	x = XUnitConsoleCmd.new(test_dll, report_dir, nil, options={:html=&gt;true})
 	x.run
 end
 </diff>
      <filename>presentation/how_4_console_tool_wrap/Rakefile.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require 'Pathname'
 
-class XUnit
+class XUnitConsoleCmd
 	attr_accessor :xunit, :test_dll, :reports_dir, :options
 
 	def initialize(test_dll, reports_dir, xunit=nil, options={})</diff>
      <filename>presentation/how_4_console_tool_wrap/xunit.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,20 +1,15 @@
-require &quot;spec&quot;
+require 'spec'
+require 'rake/tasklib'
+require File.join(File.dirname(__FILE__), '..','lib','iisappcmd.rb')
 
 describe IisAppCmd do
-
-	# Called before each example.
-	before(:each) do
-		# Do nothing
-	end
-
-	# Called after each example.
-	after(:each) do
-		# Do nothing
-	end
-
-	it &quot;should have some sensible default paths to look for exe&quot; do
-
-		#To change this template use File | Settings | File Templates.
-		true.should == false
-	end
+	it &quot;should have some sensible default paths to look for exe&quot;
+	it &quot;should require a physical path&quot;
+	it &quot;should default to http://*:80 when no bindings are supplied&quot;
+	it &quot;should handle a list of bindings&quot;
+	it &quot;should handle a single binding&quot;
+	it &quot;should default to naming the site like the last directory name in physical-path&quot;
+	it &quot;should use a supplied website name&quot;
+	it &quot;should use a supplied id&quot;
+	it &quot;should generate an id when not supplied&quot;
 end
\ No newline at end of file</diff>
      <filename>spec/iisappcmd_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>0f1bd2e59363213f93cddaa92f7d744001a88341</id>
    </parent>
  </parents>
  <author>
    <name>Peter Mounce</name>
    <email>pete@neverrunwithscissors.com</email>
  </author>
  <url>http://github.com/petemounce/rake-dotnet/commit/aa9058663c188e0854c81f07453cd6147b3da3f5</url>
  <id>aa9058663c188e0854c81f07453cd6147b3da3f5</id>
  <committed-date>2009-10-11T14:17:04-07:00</committed-date>
  <authored-date>2009-10-11T14:17:04-07:00</authored-date>
  <message>BREAKING CHANGE: Renamed all command-line wrappers to end with Cmd indicating inheritance from Cmd base class which does path inference

Also
- added iis7 appcmd wrapper for adding a website (not finished yet)
- added default_rakefile.rb for being a template for the bare-minimum to work off of</message>
  <tree>2e74a96d8ccd9d19fda1a507e995053a1c5dc07a</tree>
  <committer>
    <name>Peter Mounce</name>
    <email>pete@neverrunwithscissors.com</email>
  </committer>
</commit>
