Class: RakeDotNet::HarvestWebApplicationTask

Inherits:
Rake::TaskLib
  • Object
show all
Defined in:
lib/rake_dotnet.rb

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) {|_self| ... } ⇒ HarvestWebApplicationTask

Returns a new instance of HarvestWebApplicationTask.

Yields:

  • (_self)

Yield Parameters:



577
578
579
580
581
582
583
584
585
# File 'lib/rake_dotnet.rb', line 577

def initialize(params={})
  @src_path = params[:src_path] || File.join(PRODUCT_ROOT, 'src')
  @target_path = params[:target_path] || OUT_DIR
  @deps = params[:deps] || []
  @glob = params[:glob] || "**/*.Site"

  yield self if block_given?
  define
end

Instance Method Details

#defineObject



587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
# File 'lib/rake_dotnet.rb', line 587

def define
  out_dir_regex = RakeDotNet::regexify(@target_path)

  odr = /#{out_dir_regex}\/([\w\.-_ ]*Site)\//
  rule(odr) do |r|
    harvest(r.name, odr)
  end
  
  desc "Harvest specified web-applications (or all matching #{@src_path}/#{@glob}) to #{@target_path}"
  task :harvest_webapps, [:web_app_list] => @target_path do |t, args|
    list = FileList.new("#{@src_path}/#{@glob}")
    args.with_defaults(:web_app_list => list)
    args.web_app_list.each do |w|
      pn = Pathname.new(w)
      out = File.join(@target_path, pn.basename) + '/'
      Rake::FileTask[out].invoke
    end
  end

  @deps.each do |d|
    task :harvest_webapps => d
  end

  self
end

#harvest(path, regex) ⇒ Object



613
614
615
616
617
618
619
620
621
622
623
624
625
626
# File 'lib/rake_dotnet.rb', line 613

def harvest(path, regex)
  web_app_name = path.match(regex)[1]
  src = File.join(@src_path, web_app_name)
  if (File.exist?("#{src}/.svn"))
    svn = SvnExport.new({:src=>src, :dest=>path})
    svn.run
    cp_r(File.join(src, 'bin'), path)
  else
    cp_r src, path
  end
  FileList.new("#{path}**/obj").each do |e|
    rm_rf e if File.exist? e
  end
end