require 'rubygems' require 'rake' require 'rake/clean' require 'rake/packagetask' require 'rake/gempackagetask' require 'rake/rdoctask' require 'rake/contrib/rubyforgepublisher' require 'fileutils' include FileUtils require File.join(File.dirname(__FILE__), 'lib', 'newgem', 'version') NAME = "newgem" REV = File.read(".svn/entries")[/committed-rev="(\d+)"/, 1] rescue nil VERS = ENV['VERSION'] || (Newgem::VERSION::STRING + (REV ? ".#{REV}" : "")) CLEAN.include ['**/.*.sw?', '*.gem', '.config'] RDOC_OPTS = ['--quiet', '--title', "newgem documentation", "--opname", "index.html", "--line-numbers", "--main", "README", "--inline-source"] BIN_FILES = %w( newgem ) desc "Packages up newgem gem to make gems." task :default => [:test] task :package => [:clean] task :test do require File.dirname(__FILE__) + '/test/all_tests.rb' end spec = Gem::Specification.new do |s| s.name = NAME s.version = VERS s.platform = Gem::Platform::RUBY s.has_rdoc = true s.extra_rdoc_files = ["README", "CHANGELOG"] s.rdoc_options += RDOC_OPTS + ['--exclude', '^(examples|extras)\/'] s.summary = "Make your own gems at home" s.description = s.summary s.author = "Dr Nic Williams" s.email = 'drnicwilliams@gmail.com' s.homepage = 'http://newgem.rubyforge.org' s.executables = BIN_FILES s.bindir = "bin" s.add_dependency('activesupport', '>=1.3.1') #s.required_ruby_version = '>= 1.8.2' s.files = %w(README Rakefile) + Dir.glob("{bin,doc,test,lib,templates,extras,website,script}/**/*") + Dir.glob("ext/**/*.{h,c,rb}") + Dir.glob("examples/**/*.rb") + Dir.glob("tools/*.rb") s.require_path = "lib" # s.extensions = FileList["ext/**/extconf.rb"].to_a end Rake::GemPackageTask.new(spec) do |p| p.need_tar = false p.gem_spec = spec end task :install do sh %{rake package} sh %{sudo gem install pkg/#{NAME}-#{VERS}} end task :install_win => [:package] do %x{gem install pkg\\#{NAME}-#{VERS}.gem} end task :uninstall => [:clean] do sh %{sudo gem uninstall #{NAME}} end