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', '#{gem_name}', 'version') AUTHOR = "you" EMAIL = "your contact email for bug fixes and info" DESCRIPTION = "description of gem" HOMEPATH = 'http://#{gem_name}.rubyforge.org' BIN_FILES = %w( #{bin_names} ) NAME = "#{gem_name}" REV = File.read(".svn/entries")[/committed-rev="(\d+)"/, 1] rescue nil VERS = ENV['VERSION'] || (#{module_name}::VERSION::STRING + (REV ? ".\#{REV}" : "")) CLEAN.include ['**/.*.sw?', '*.gem', '.config'] RDOC_OPTS = ['--quiet', '--title', "#{gem_name} documentation", "--opname", "index.html", "--line-numbers", "--main", "README", "--inline-source"] desc "Packages up #{gem_name} gem." 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 = DESCRIPTION s.description = DESCRIPTION s.author = AUTHOR s.email = EMAIL s.homepage = HOMEPATH s.executables = BIN_FILES s.bindir = "bin" s.require_path = "lib" #s.add_dependency('activesupport', '>=1.3.1') #s.required_ruby_version = '>= 1.8.2' s.files = %w(README CHANGELOG 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.extensions = FileList["ext/**/extconf.rb"].to_a end Rake::GemPackageTask.new(spec) do |p| p.need_tar = true p.gem_spec = spec end task :install do name = "\#{NAME}-\#{VERS}.gem" sh %{rake package} sh %{sudo gem install pkg/\#{name}} end task :uninstall => [:clean] do sh %{sudo gem uninstall \#{NAME}} end