class Jeweler::RubyforgeTasks

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}/

See also wiki.github.com/technicalpickles/jeweler/rubyforge

Attributes

doc_task[RW]

Task to be used for generating documentation, before they are uploaded. Defaults to rdoc.

jeweler[RW]
project[RW]

The RubyForge project to interact with. Defaults to whatever is in your jeweler gemspec.

remote_doc_path[RW]

The path to upload docs to. It is relative to /var/www/gforge-projects/#{project}/, and defaults to your gemspec’s name

Public Instance Methods

define() click to toggle source
# File lib/jeweler/rubyforge_tasks.rb, line 51
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 self.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 %Q{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
publish_documentation?() click to toggle source
# File lib/jeweler/rubyforge_tasks.rb, line 91
def publish_documentation?
  ! (doc_task == false || doc_task == :none)
end

Public Class Methods

new() { |self| ... } click to toggle source
# File lib/jeweler/rubyforge_tasks.rb, line 31
def initialize
  yield self if block_given?

  $stderr.puts "Releasing gems to Rubyforge is deprecated. See details at http://wiki.github.com/technicalpickles/jeweler/migrating-from-releasing-gems-to-rubyforge"

  define
end