Parent

Class Index [+]

Quicksearch

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

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

doc_task[RW]

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

jeweler[RW]

Public Class Methods

new() click to toggle source
    # File lib/jeweler/rubyforge_tasks.rb, line 31
31:     def initialize
32:       yield self if block_given?
33: 
34:       self.doc_task = :rdoc if self.doc_task == nil # be sure to allow it to be set to false, to allow disabling
35: 
36:       define
37:     end

Public Instance Methods

define() click to toggle source
     # 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
jeweler() click to toggle source
    # File lib/jeweler/rubyforge_tasks.rb, line 39
39:     def jeweler
40:       @jeweler ||= Rake.application.jeweler
41:     end
project() click to toggle source
    # File lib/jeweler/rubyforge_tasks.rb, line 47
47:     def project
48:       @project ||= jeweler.gemspec.rubyforge_project
49:     end
publish_documentation?() click to toggle source
     # File lib/jeweler/rubyforge_tasks.rb, line 114
114:     def publish_documentation?
115:       ! (doc_task == false || doc_task == :none)
116:     end
remote_doc_path() click to toggle source
    # File lib/jeweler/rubyforge_tasks.rb, line 43
43:     def remote_doc_path
44:       @remote_doc_path ||= jeweler.gemspec.name
45:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.