Rakefile in rio-0.4.2 vs Rakefile in rio-0.5.1
- old
+ new
@@ -1,281 +1,52 @@
-#--
-# ===============================================================================
-# Copyright (c) 2005,2006,2007,2008 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
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# Rio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Rio; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-# ===============================================================================
-#
-# To create the documentation for Rio run the command
-# ruby build_doc.rb
-# from the distribution directory.
-#++
+#!/usr/bin/env rake
+require "bundler/gem_tasks"
+require "rdoc/task"
-begin
- require 'rubygems'
- require 'rake/gempackagetask'
-rescue Exception
-end
+Rake::RDocTask.new do |rdoc|
+ # $:.unshift File.expand_path(File.dirname(__FILE__))
-require 'rake/clean'
-require 'rake/packagetask'
-require 'rake/rdoctask'
-require 'rake/testtask'
+ # p File.dirname(__FILE__) + '/../'
+ # p $:
+ require 'rdoc/rdoc'
+ # require 'rdoc/generator/parts'
+ rdoc.main = 'README'
+ rdoc.rdoc_files.include("README",
+ "lib/rio.rb",
+ "lib/rio/doc/*.rb",
+ "lib/rio/if/*.rb",
+ "lib/rio/kernel.rb",
+ "lib/rio/constructor.rb")
-# General actions ##############################################################
-
-$:.push 'lib'
-require 'rio/version'
-require 'rio/doc'
-require 'rio'
-
-SVN_REPOSITORY_ROOT = 'svn+ssh://rio4ruby@rubyforge.org//var/svn/rio'
-SVN_REPOSITORY_URL = [SVN_REPOSITORY_ROOT,'trunk/rio'].join('/')
-
-require 'doc/pkg_def'
-
-ZIP_DIR = "/loc/zip/ruby/rio"
-
-
-# The default task is run if rake is given no explicit arguments.
-
-desc "Default Task"
-task :default => :rdoc
-
-
-# End user tasks ################################################################
-
-desc "Prepares for installation"
-task :prepare do
- ruby "setup.rb config"
- ruby "setup.rb setup"
+ rdoc.title = 'Rio'
+ # #p $:[0]
+ # rdoc.rdoc_dir = 'doc'
+ # rdoc.options = PKG::RDOC_OPTIONS + ['--format=parts']
+ # rdoc.inline_source = false
+ #rdoc.show_hash = true
+ #rdoc.add_generator(RDoc::Generator::Riofish)
+ #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
-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 => [:rio_rdoc] do
- puts "\nGenerating online documentation..."
-# ruby %{-I../lib ../bin/webgen -V 2 }
-end
-
-rd = Rake::RDocTask.new do |rdoc|
- rdoc.rdoc_dir = 'doc/rdoc'
- rdoc.title = PKG::TITLE
- rdoc.options = PKG::RDOC_OPTIONS
- rdoc.main = 'RIO::Doc::SYNOPSIS'
- 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
-
-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 :ziparc do |var|
- require 'rio'
- #$trace_states = true
- rio(ZIP_DIR) < rio('pkg').files['*.tgz','*.tar.gz','*.zip','*.gem']
-end
-
-task :gen_changelog do
- sh "svn log -r HEAD:1 -v > ChangeLog"
-end
-
-task :gen_version do
- puts "Generating VERSION file"
- File.open( 'VERSION', 'w+' ) do |file| file.write( PKG::VERSION + "\n" ) end
-end
-
-
-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.")
-# exit(-1)
-# end
-end
-
-task :package => [:no_old_pkg, :gen_files]
-#PKG::OUT_FILES.each do |f|
-# file f => [:package]
-#end
-
-Rake::PackageTask.new( PKG::NAME, PKG::VERSION ) do |p|
- p.need_tar_gz = true
- p.need_zip = true
- 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 = PKG::HOMEPAGE
- s.rubyforge_project = PKG::RUBYFORGE_PROJECT
-
- 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|
- 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
-desc "Save the current code as a new svn version"
-task :svn_version do
- require 'rio'
- repos = rio(SVN_REPOSITORY_URL)
- repo_root = rio(SVN_REPOSITORY_ROOT)
- proju = rio(repo_root,'trunk',PKG::NAME)
- relu = rio(repo_root,'tags',"release-#{PKG::VERSION}")
- relo =`svn list #{relu.to_url}`
- if relo.size > 0
- $stderr.puts "Release #{relu.to_url} exists!"
- exit(-1)
- end
- msg = "Release #{PKG::VERSION} of #{PKG::NAME}"
- cmd = sprintf('svn copy %s %s -m "%s"',proju.to_url, relu.to_url, msg)
- sh cmd
-end
-
-desc "Commit the current code to svn"
-task :svn_commit do
- require 'rio'
- msg = rio(?-).print("Comment: ").chomp.gets
- cmd = sprintf('svn commit -m "%s"', msg)
- sh cmd
-end
-
-#desc "Build the gem from the gemspec"
-#task :buildgem => ['rio.gemspec'] do
-# cmd = "gem build 'rio.gemspec'"
-# sh cmd
-#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
-
-desc "Upload documentation to homepage"
-task :uploaddoc => [:rdoc] do
- Dir.chdir('doc/rdoc')
- puts
- puts "rio4ruby@rubyforge.org:/var/www/gforge-projects/#{PKG::NAME}/"
- sh "scp -r * rio4ruby@rubyforge.org:/var/www/gforge-projects/#{PKG::NAME}/"
-end
-
-
-# Misc tasks ###################################################################
-
-
-def count_lines( filename )
- lines = 0
- codelines = 0
- open( filename ) do |f|
- f.each do |line|
- lines += 1
- next if line =~ /^\s*$/
- next if line =~ /^\s*#/
- codelines += 1
+namespace :development do
+ gemspec = eval(::File.open(Dir[File.join(::File.dirname(__FILE__), "{,*}.gemspec")].first).read)
+ gemname = "#{gemspec.name}-#{gemspec.version}.gem"
+ desc "Release #{gemname} to private gem server"
+ task :release_private, [:host,:remote_dir] => :build do |t,args|
+ args.with_defaults(:host => 'gems', :remote_dir => '/srv/www/gems')
+ puts "Releasing #{gemname} to gem server at '#{args[:host]}' using remote directory '#{args[:remote_dir]}'"
+ sh %{scp pkg/#{gemname} #{args[:host]}:#{args[:remote_dir]}/gems} do |ok, res|
+ if ok
+ sh %{ ssh #{args[:host]} 'bash -l -c "gem generate_index -d #{args[:remote_dir]}"' } do |ok, res|
+ puts "command failed with status '#{res.exitstatus}'" unless ok
+ end
+ else
+ puts "command failed with status '#{res.exitstatus}'"
+ end
end
end
- [lines, codelines]
end
-
-def show_line( msg, lines, loc )
- printf "%6s %6s %s\n", lines.to_s, loc.to_s, msg
-end
-
-
-desc "Show statistics"
-task :statistics do
- total_lines = 0
- total_code = 0
- show_line( "File Name", "Lines", "LOC" )
- PKG::FILES::SRC.each do |fn|
- lines, codelines = count_lines fn
- show_line( fn, lines, codelines )
- total_lines += lines
- total_code += codelines
- end
- show_line( "Total", total_lines, total_code )
-end
-
-
-def run_testsite( arguments = '' )
- chdir 'test' do
- ruby "-I../lib -I. #{arguments} runtests.rb"
- end
-# ruby %{-I../lib #{arguments} ../bin/webgen -V 3 }
-end
-
-
-CLOBBER << "test/qp" << "qp"
-desc "Build the test site"
-task :testsite do
- run_testsite
-end
-
-
-CLOBBER << "test/coverage"
-desc "Run the code coverage tool on the testsite"
-task :coverage do
- run_testsite '-rcoverage'
-end