class Jeweler::RubyforgeTasks
* remote_doc_path: the place to upload docs to on Rubyforge under /var/www/gforge-projects/#{project}/
* project: the rubyforge project to operate on. This defaults to whatever you specified in your gemspec. Defaults to your gem name.
There are a few options you can tweak:
Easy enough, right?
Jeweler::RubyforgeTasks.new
Basic usage:
Jeweler::Tasks.new needs to be used before this.
Rake tasks for putting a Jeweler gem on Rubyforge.
def define
def define namespace :rubyforge do desc "Release gem and RDoc documentation to RubyForge" task :release => ["rubyforge:release:gem", "rubyforge:release:docs"] namespace :release do desc "Release the current gem version to RubyForge." task :gem => [:gemspec, :build] do begin jeweler.release_gem_to_rubyforge rescue NoRubyForgeProjectInGemspecError => e abort "Setting up RubyForge requires that you specify a 'rubyforge_project' in your Jeweler::Tasks declaration" rescue MissingRubyForgePackageError => e abort "Rubyforge reported that the #{e.message} package isn't setup. Run rake rubyforge:setup to do so." rescue RubyForgeProjectNotConfiguredError => e 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" end end desc "Publish docs to RubyForge." task :docs => doc_task do config = YAML.load( File.read(File.expand_path('~/.rubyforge/user-config.yml')) ) host = "#{config['username']}@rubyforge.org" remote_dir = "/var/www/gforge-projects/#{project}/#{remote_doc_path}" local_dir = case self.doc_task.to_sym when :rdoc then 'rdoc' when :yardoc then 'doc' else raise "Unsure what to run to generate documentation. Please set doc_task and re-run." end sh %{rsync -av --delete #{local_dir}/ #{host}:#{remote_dir}} end end desc "Setup a rubyforge project for this gem" task :setup do begin jeweler.setup_rubyforge rescue NoRubyForgeProjectInGemspecError => e abort "Setting up RubyForge requires that you specify a 'rubyforge_project' in your Jeweler::Tasks declaration" rescue RubyForgeProjectNotConfiguredError => e 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" end end end end
def initialize
def initialize yield self if block_given? self.jeweler = Rake.application.jeweler self.remote_doc_path ||= jeweler.gemspec.name self.project ||= jeweler.gemspec.rubyforge_project self.doc_task ||= :rdoc define end