From ee808b400543d924286eebaee8ed1ad8a4e28ced Mon Sep 17 00:00:00 2001 From: murphy Date: Sun, 16 Apr 2006 00:38:38 +0000 Subject: Rake tasks completely redone. rdoctask2.rb deleted; issues were fixed as of Rake 0.7.0. --- rake_tasks/gem.rake | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 rake_tasks/gem.rake (limited to 'rake_tasks/gem.rake') diff --git a/rake_tasks/gem.rake b/rake_tasks/gem.rake new file mode 100644 index 0000000..bf2e2e1 --- /dev/null +++ b/rake_tasks/gem.rake @@ -0,0 +1,103 @@ +require 'rake/gempackagetask.rb' + +def gemspec + Gem::Specification.new do |s| + # Basic Information + s.name = s.rubyforge_project = 'coderay' + s.version = '0' + + s.platform = Gem::Platform::RUBY + s.requirements = ['strscan'] + s.date = Time.now.strftime '%Y-%m-%d' + s.has_rdoc = true + s.rdoc_options = '-SNw2', '-mREADME', '-a', '-t CodeRay Documentation' + s.extra_rdoc_files = EXTRA_FILES.in('./') + + # Description + s.summary = <<-EOF + CodeRay is a fast syntax highlighter engine for many languages. + EOF + s.description = <<-EOF + CodeRay is a Ruby library for syntax highlighting. + I try to make CodeRay easy to use and intuitive, but at the same time + fully featured, complete, fast and efficient. + + Usage is simple: + require 'coderay' + code = 'some %q(weird (Ruby) can\'t shock) me!' + puts CodeRay.scan(code, :ruby).html + EOF + + # Files + s.require_path = 'lib' + s.autorequire = 'coderay' + + s.files = nil # defined later + + # Credits + s.author = 'murphy' + s.email = 'murphy@cYcnus.de' + s.homepage = 'http://rd.cycnus.de/coderay' + end +end + +namespace :gem do + + gemtask = Rake::GemPackageTask.new(gemspec) do |pkg| + pkg.need_zip = true + pkg.need_tar = true + end + + desc 'Create the gem again' + task :make => [:make_gemspec, :gem, :prepare_server] + + desc 'Find out the current CodeRay version' + task :get_version do + unless $version + $: << './lib' + require 'coderay' + $version = CodeRay::Version + end + puts 'Current Version: %s' % $version + $version.sub!(/\.(\d+)\./) { minor = $1; ".#{minor.to_i - 1}." } + $version << '.' << (`svn info`[/Revision: (\d+)/,1]) + end + + task :make_gemspec => :get_version do + candidates = Dir['./lib/**/*.rb'] + + Dir['./demo/*.rb'] + + # Dir['./bin/*'] + + # Dir['./demo/bench/*'] + + # Dir['./test/*'] + + %w( ./README ./LICENSE) + s = gemtask.gem_spec + s.files = candidates #.delete_if { |item| item[/(?:CVS|rdoc)|~$/] } + gemtask.version = s.version = $version + end + + GEMDIR = 'gem_server/gems' + task :prepare_server => :get_version do + $gemfile = "coderay-#$version.gem" + Dir[GEMDIR + '/*.gem'].each { |g| rm g } + cp "pkg/#$gemfile", GEMDIR + system 'ruby -S generate_yaml_index.rb -d gem_server' + end + + desc 'Upload gemfile to ' + FTP_DOMAIN + task :up_gem => :make do + gn 'Uploading gem:' + Dir.chdir 'gem_server' do + cYcnus_ftp do |ftp| + uploader = uploader_for ftp + ftp.chdir FTP_CODERAY_DIR + %w(yaml yaml.Z).each &uploader + Dir.chdir 'gems' do + ftp.chdir 'gems' + uploader.call $gemfile + end + end + end + gn 'Gem successfully uploaded.' + end + +end -- cgit v1.2.1