rakefile
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:3k
源码类别:

Ajax

开发平台:

Others

  1. require 'rubygems'
  2. require 'rake'
  3. require 'rake/testtask'
  4. require 'rake/rdoctask'
  5. require 'rake/packagetask'
  6. require 'rake/gempackagetask'
  7. require 'rake/contrib/rubyforgepublisher'
  8. PKG_NAME      = 'uuidtools'
  9. PKG_VERSION   = '0.1.1'
  10. PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
  11. RELEASE_NAME  = "REL #{PKG_VERSION}"
  12. RUBY_FORGE_PROJECT = "uuidtools"
  13. RUBY_FORGE_USER    = "vacindak"
  14. PKG_FILES = FileList[
  15.     "lib/**/*", "test/**/*", "examples/**/*", "doc/**/*", "[A-Z]*", "install.rb", "rakefile"
  16. ].exclude(/bCVSb|~$/).exclude(/database.yml/)
  17. desc "Default Task"
  18. task :default => [ :test_all ]
  19. # Run the unit tests
  20. Rake::TestTask.new("test_all") { |t|
  21.   t.libs << "test"
  22.   t.pattern = 'test/*_test.rb'
  23.   t.verbose = true
  24. }
  25. # Generate the RDoc documentation
  26. Rake::RDocTask.new { |rdoc|
  27.   rdoc.rdoc_dir = 'doc'
  28.   rdoc.title    = "UUID Tools -- universally unique id generation tools"
  29.   rdoc.options << '--line-numbers --inline-source --accessor cattr_accessor=object'
  30.   rdoc.template = "#{ENV['template']}.rb" if ENV['template']
  31.   rdoc.rdoc_files.include('README', 'CHANGELOG')
  32.   rdoc.rdoc_files.include('lib/**/*.rb')
  33. }
  34. # Create compressed packages
  35. dist_dirs = [ "lib", "test" ]
  36. spec = Gem::Specification.new do |s|
  37.   s.name = PKG_NAME
  38.   s.version = PKG_VERSION
  39.   s.summary = "Generation of UUIDs."
  40.   s.description = "Implements a simple system for generating UUIDs."
  41.   s.files = [ "rakefile", "install.rb", "README", "CHANGELOG" ]
  42.   dist_dirs.each do |dir|
  43.     s.files = s.files + Dir.glob( "#{dir}/**/*" ).delete_if do |item|
  44.       item.include?( ".svn" ) || item.include?( "database.yml" )
  45.     end
  46.   end
  47.   
  48.   s.require_path = 'lib'
  49.   s.autorequire = 'uuidtools'
  50.   s.has_rdoc = true
  51.   s.extra_rdoc_files = %w( README )
  52.   s.rdoc_options.concat ['--main',  'README']
  53.   
  54.   s.author = "Bob Aman"
  55.   s.email = "bob@sporkmonger.com"
  56.   s.homepage = "http://sporkmonger.com/projects/uuidtools"
  57.   s.rubyforge_project = "uuidtools"
  58. end
  59.   
  60. Rake::GemPackageTask.new(spec) do |p|
  61.   p.gem_spec = spec
  62.   p.need_tar = true
  63.   p.need_zip = true
  64. end
  65. task :lines do
  66.   lines, codelines, total_lines, total_codelines = 0, 0, 0, 0
  67.   for file_name in FileList["lib/**/*.rb"]
  68.     f = File.open(file_name)
  69.     while line = f.gets
  70.       lines += 1
  71.       next if line =~ /^s*$/
  72.       next if line =~ /^s*#/
  73.       codelines += 1
  74.     end
  75.     puts "L: #{sprintf("%4d", lines)}, LOC #{sprintf("%4d", codelines)} | #{file_name}"
  76.     
  77.     total_lines     += lines
  78.     total_codelines += codelines
  79.     
  80.     lines, codelines = 0, 0
  81.   end
  82.   puts "Total: Lines #{total_lines}, LOC #{total_codelines}"
  83. end
  84. # Publishing ------------------------------------------------------
  85. desc "Publish the API documentation"
  86. task :pdoc => [:rdoc] do 
  87.   Rake::SshDirPublisher.new(
  88.     "vacindak@sporkmonger.com",
  89.     "public_html/projects/uuidtools/api",
  90.     "doc").upload
  91. end