class Jeweler::RubyforgeTasks

def define

def define
  namespace :rubyforge do
    namespace :release do
      desc 'Release the current gem version to RubyForge.'
      task :gem do
        $stderr.puts 'DEPRECATION: Releasing gems to RubyForge is deprecated. You should see about releasing to Gemcutter instead: http://wiki.github.com/technicalpickles/jeweler/gemcutter'
      end
      if publish_documentation?
        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 doc_task.to_sym
                      when :rdoc then 'rdoc'
                      when :yardoc then 'doc'
                      when 'doc:app'.to_sym then 'doc/app'
                      else
                        raise 'Unsure what to run to generate documentation. Please set doc_task and re-run.'
                      end
          sh %(rsync --archive --verbose --delete #{local_dir}/ #{host}:#{remote_dir})
        end
      end
    end
    if publish_documentation?
      desc 'Release RDoc documentation to RubyForge'
      task release: 'rubyforge:release:docs'
    end
  end
  task release: 'rubyforge:release'
end