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