Class: Jeweler::RubyforgeTasks
- Inherits:
-
Rake::TaskLib
- Object
- Rake::TaskLib
- Jeweler::RubyforgeTasks
- Defined in:
- lib/jeweler/rubyforge_tasks.rb
Overview
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}/
Instance Attribute Summary collapse
-
#doc_task ⇒ Object
Task to be used for generating documentation, before they are uploaded.
-
#jeweler ⇒ Object
Returns the value of attribute jeweler.
-
#project ⇒ Object
The RubyForge project to interact with.
-
#remote_doc_path ⇒ Object
The path to upload docs to.
Instance Method Summary collapse
- #define ⇒ Object
-
#initialize {|_self| ... } ⇒ RubyforgeTasks
constructor
A new instance of RubyforgeTasks.
- #publish_documentation? ⇒ Boolean
Constructor Details
#initialize {|_self| ... } ⇒ RubyforgeTasks
Returns a new instance of RubyforgeTasks.
31 32 33 34 35 36 37 |
# 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 |
Instance Attribute Details
#doc_task ⇒ Object
Task to be used for generating documentation, before they are uploaded. Defaults to rdoc.
27 28 29 |
# File 'lib/jeweler/rubyforge_tasks.rb', line 27 def doc_task @doc_task end |
#jeweler ⇒ Object
Returns the value of attribute jeweler.
29 30 31 |
# File 'lib/jeweler/rubyforge_tasks.rb', line 29 def jeweler @jeweler end |
#project ⇒ Object
The RubyForge project to interact with. Defaults to whatever is in your jeweler gemspec.
23 24 25 |
# File 'lib/jeweler/rubyforge_tasks.rb', line 23 def project @project end |
#remote_doc_path ⇒ Object
The path to upload docs to. It is relative to /var/www/gforge-projects/##project/, and defaults to your gemspec’s name
25 26 27 |
# File 'lib/jeweler/rubyforge_tasks.rb', line 25 def remote_doc_path @remote_doc_path end |
Instance Method Details
#define ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# 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.('~/.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 |
#publish_documentation? ⇒ Boolean
91 92 93 |
# File 'lib/jeweler/rubyforge_tasks.rb', line 91 def publish_documentation? ! (doc_task == false || doc_task == :none) end |