Rakefile in rio-0.3.8 vs Rakefile in rio-0.3.9

- old
+ new

@@ -1,8 +1,8 @@ #-- # =============================================================================== -# Copyright (c) 2005, 2006 Christopher Kleckner +# Copyright (c) 2005,2006,2007 Christopher Kleckner # All rights reserved # # This file is part of the Rio library for ruby. # # Rio is free software; you can redistribute it and/or modify @@ -39,36 +39,16 @@ # General actions ############################################################## $:.push 'lib' require 'rio/version' require 'rio/doc' +require 'rio' -SVN_REPOSITORY_URL = '' +SVN_REPOSITORY_URL = 'svn+ssh://rio4ruby@rubyforge.org//var/svn/trunk/rio' -SRC_FILES = FileList['lib/**/*.rb'] -DOC_FILES = FileList['README','lib/rio.rb','lib/rio/doc/*.rb', - 'lib/rio/if/*.rb','lib/rio/kernel.rb','lib/rio/constructor.rb'] -XMP_FILES = FileList['ex/*'] +require 'doc/pkg_def' -module PKG - NAME = "rio" - TITLE = RIO::TITLE - VERSION = RIO::VERSION - FULLNAME = PKG::NAME + "-" + PKG::VERSION - SUMMARY = RIO::SUMMARY - DESCRIPTION = RIO::DESCRIPTION - FILES = FileList.new(['setup.rb', 'build_doc.rb', 'COPYING', 'Rakefile', 'ChangeLog', 'VERSION', - 'test/**/*.rb','doc/**/*'] + SRC_FILES.to_a + DOC_FILES.to_a + XMP_FILES.to_a - ) do |fl| - fl.exclude( /\bsvn\b/ ) - fl.exclude( 'test/qp' ) - fl.exclude( 'test/coverage' ) - fl.exclude( 'doc/rdoc' ) - end - OUT_DIR = 'pkg' - OUT_FILES = %w[.gem .tar.gz .zip].map { |ex| OUT_DIR + '/' + FULLNAME + ex } -end ZIP_DIR = "/zip/ruby/rio" # The default task is run if rake is given no explicit arguments. @@ -82,51 +62,48 @@ task :prepare do ruby "setup.rb config" ruby "setup.rb setup" end - desc "Installs the package #{PKG::NAME}" task :install => [:prepare] do ruby "setup.rb install" end - task :clean do ruby "setup.rb clean" end - CLOBBER << "doc/rdoc" desc "Builds the documentation" -task :doc => [:rdoc] do +task :doc => [:rio_rdoc] do puts "\nGenerating online documentation..." # ruby %{-I../lib ../bin/webgen -V 2 } end -RDOC_OPTIONS = ['--line-numbers'] rd = Rake::RDocTask.new do |rdoc| rdoc.rdoc_dir = 'doc/rdoc' rdoc.title = PKG::TITLE - rdoc.options = RDOC_OPTIONS + rdoc.options = PKG::RDOC_OPTIONS rdoc.main = 'RIO::Doc::SYNOPSIS' - DOC_FILES.to_a.each do |glb| - next if glb =~ /yaml.rb$/ + PKG::FILES::DOC.to_a.each do |glb| + #next if glb =~ /yaml.rb$/ rdoc.rdoc_files.include( glb ) end rdoc.template = 'doc/generators/template/html/rio.rb' end -CLOBBER << "test/rio.log" +desc "Build custom RDoc" +task :rio_rdoc do + require 'rio/doc/SYNOPSIS' + ruby "-Idoc/patched_rdoc -Ilib doc/bin/rdoc --show-hash --op doc/rdoc --title #{PKG::TITLE} --line-numbers --template doc/generators/template/html/rio.rb #{PKG::FILES::DOC} --main #{RIO::Doc::SYNOPSIS}" +end +CLOBBER << "test/log" << "test/qp" task :test do |t| sh "cd test;ruby -I../lib -I. runtests.rb" end -#task :package => [:gen_files] do |var| -# require 'rio/kernel' -# rio(ZIP_DIR) << rio('pkg').files['*.tgz','*.tar.gz','*.zip','*.gem'] -#end task :ziparc do |var| require 'rio' #$trace_states = true rio(ZIP_DIR) < rio('pkg').files['*.tgz','*.tar.gz','*.zip','*.gem'] end @@ -143,10 +120,11 @@ #task :gen_files => [:gen_changelog, :gen_version, :gen_installrb] #CLOBBER << "ChangeLog" << "VERSION" << "install.rb" task :gen_files => [:gen_changelog, :gen_version] +#task :gen_files => [:gen_version] CLOBBER << "ChangeLog" << "VERSION" task :no_old_pkg do # unless Dir["pkg/#{PKG::FULLNAME}*"].empty? # $stderr.puts("packages for version #{PKG::VERSION} exist!") # $stderr.puts("Either delete them, or change the version number.") @@ -160,13 +138,42 @@ #end Rake::PackageTask.new( PKG::NAME, PKG::VERSION ) do |p| p.need_tar_gz = true p.need_zip = true - p.package_files = PKG::FILES + p.package_files = PKG::FILES::DIST end +Spec = Gem::Specification.new do |s| + s.name = PKG::NAME + s.version = PKG::VERSION + s.author = PKG::AUTHOR + s.email = PKG::EMAIL + s.homepage = "http://rio.rubyforge.org/" + s.rubyforge_project = "rio" + + s.platform = Gem::Platform::RUBY + s.summary = PKG::SUMMARY + s.files = PKG::FILES::DIST.map { |rf| rf.to_s } + + s.require_path = 'lib' + s.autorequire = 'rio' + + s.has_rdoc = true + + s.rdoc_options << PKG::RDOC_OPTIONS +end + +Rake::GemPackageTask.new(Spec) do |p| end + +desc "Build the Gem spec file for the rio package" +task :gemspec => "pkg/rio.gemspec" +file "pkg/rio.gemspec" => ["pkg", "Rakefile"] do |t| + puts PKG::FILES::DIST + open(t.name, "w") do |f| f.puts Spec.to_yaml end +end + desc "Make a new release (test,package,svn_version)" task :release => [:test, :clobber, :rdoc , :package, :svn_version, :ziparc] do end @@ -192,60 +199,23 @@ msg = rio(?-).print("Comment: ").chomp.gets cmd = sprintf('svn commit -m "%s"', msg) sh cmd end -if !defined? Gem - puts "Package Target requires RubyGEMs" -else - spec = Gem::Specification.new do |s| +#desc "Build the gem from the gemspec" +#task :buildgem => ['rio.gemspec'] do +# cmd = "gem build 'rio.gemspec'" +# sh cmd +#end - #### Basic information - - s.name = PKG::NAME - s.version = PKG::VERSION - s.summary = PKG::SUMMARY - s.description = PKG::DESCRIPTION - - #### Dependencies, requirements and files - - s.files = PKG::FILES.to_a - # s.add_dependency( 'extensions', '>= 0.6.0' ) - - s.require_path = 'lib' - s.autorequire = 'rio' - - #### Documentation - - s.has_rdoc = true - #s.extra_rdoc_files = ['doc/generators/template/html/rio.rb'] - s.rdoc_options << RDOC_OPTIONS - - #### Author and project details - - s.author = "Christopher Kleckner" - s.email = "rio4ruby@rubyforge.org" - s.homepage = "http://rio.rubyforge.org/" - s.rubyforge_project = "rio" - end - - Rake::GemPackageTask.new( spec ) do |pkg| - pkg.need_zip = true - pkg.need_tar_gz = true - end - +GEM_FILENAME = "pkg/#{Spec.full_name}.gem" +desc "Install development gem" +task :installgem => [GEM_FILENAME] do + cmd = "gem install #{GEM_FILENAME}" + sh cmd end -=begin -desc "Creates a tag in the repository" -task :tag do - repositoryPath = File.dirname( $1 ) if `svn info` =~ /^URL: (.*)$/ - fail "Tag already created in repository " if /#{PKG::NAME}/ =~ `svn ls #{repositoryPath}/versions` - sh "svn cp -m 'Created version #{PKG::NAME}' #{repositoryPath}/trunk #{repositoryPath}/versions/#{PKG::NAME}" -end -=end - desc "Upload documentation to homepage" task :uploaddoc => [:rdoc] do Dir.chdir('doc/rdoc') puts puts "rio4ruby@rubyforge.org:/var/www/gforge-projects/#{PKG::NAME}/" @@ -279,10 +249,10 @@ desc "Show statistics" task :statistics do total_lines = 0 total_code = 0 show_line( "File Name", "Lines", "LOC" ) - SRC_FILES.each do |fn| + PKG::FILES::SRC.each do |fn| lines, codelines = count_lines fn show_line( fn, lines, codelines ) total_lines += lines total_code += codelines end