::Rake::TaskLib
Rake tasks for putting a Jeweler gem on Rubyforge.
Jeweler::Tasks.new needs to be used before this.
Basic usage:
Jeweler::RubyforgeTasks.new
Easy enough, right?
There are a few options you can tweak:
* project: the rubyforge project to operate on. This defaults to whatever you specified in your gemspec. Defaults to your gem name. * remote_doc_path: the place to upload docs to on Rubyforge under /var/www/gforge-projects/#{project}/
The RubyForge project to interact with. Defaults to whatever is in your jeweler gemspec.
The path to upload docs to. It is relative to /var/www/gforge-projects/#{project}/, and defaults to your gemspec’s name
# File lib/jeweler/rubyforge_tasks.rb, line 51 51: def define 52: namespace :rubyforge do 53: 54: namespace :release do 55: desc "Release the current gem version to RubyForge." 56: task :gem => [:gemspec, :build] do 57: $stderr.puts "DEPRECATION: Releasing gems to RubyForge is deprecated. You should see about releasing to Gemcutter instead: http://wiki.github.com/technicalpickles/jeweler/gemcutter" 58: begin 59: jeweler.release_gem_to_rubyforge 60: rescue NoRubyForgeProjectInGemspecError => e 61: abort "Setting up RubyForge requires that you specify a 'rubyforge_project' in your Jeweler::Tasks declaration" 62: rescue MissingRubyForgePackageError => e 63: abort "Rubyforge reported that the #{e.message} package isn't setup. Run rake rubyforge:setup to do so." 64: rescue RubyForgeProjectNotConfiguredError => e 65: abort "RubyForge reported that #{e.message} wasn't configured. This means you need to run 'rubyforge setup', 'rubyforge login', and 'rubyforge configure', or maybe the project doesn't exist on RubyForge" 66: end 67: end 68: 69: if publish_documentation? 70: desc "Publish docs to RubyForge." 71: task :docs => doc_task do 72: config = YAML.load( 73: File.read(File.expand_path('~/.rubyforge/user-config.yml')) 74: ) 75: 76: host = "#{config['username']}@rubyforge.org" 77: remote_dir = "/var/www/gforge-projects/#{project}/#{remote_doc_path}" 78: 79: local_dir = case self.doc_task.to_sym 80: when :rdoc then 'rdoc' 81: when :yardoc then 'doc' 82: else 83: raise "Unsure what to run to generate documentation. Please set doc_task and re-run." 84: end 85: 86: sh %{rsync --archive --verbose --delete #{local_dir}/ #{host}:#{remote_dir}} 87: end 88: end 89: end 90: 91: 92: desc "Release gem and RDoc documentation to RubyForge" 93: task :release => "rubyforge:release:gem" 94: task :release => "rubyforge:release:docs" if publish_documentation? 95: 96: 97: desc "Setup a rubyforge project for this gem" 98: task :setup do 99: $stderr.puts "DEPRECATION: Releasing gems to RubyForge is deprecated. You should see about releasing to Gemcutter instead: http://wiki.github.com/technicalpickles/jeweler/gemcutter" 100: begin 101: jeweler.setup_rubyforge 102: rescue NoRubyForgeProjectInGemspecError => e 103: abort "Setting up RubyForge requires that you specify a 'rubyforge_project' in your Jeweler::Tasks declaration" 104: rescue RubyForgeProjectNotConfiguredError => e 105: abort "The RubyForge reported that #{e.message} wasn't configured. This means you need to run 'rubyforge setup', 'rubyforge login', and 'rubyforge configure', or maybe the project doesn't exist on RubyForge" 106: end 107: end 108: 109: end 110: 111: task :release => 'rubyforge:release' 112: end
# File lib/jeweler/rubyforge_tasks.rb, line 39 39: def jeweler 40: @jeweler ||= Rake.application.jeweler 41: end
# File lib/jeweler/rubyforge_tasks.rb, line 47 47: def project 48: @project ||= jeweler.gemspec.rubyforge_project 49: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.