Publish plugin for hoe.
Create news email file and post to rubyforge.
Generate email announcement file.
Post announcement to blog.
Post announcement to rubyforge.
Generate ri locally for testing.
Run publish_docs
when you run release
.
An array of hashes of blog settings.
The blogs entry can either look like:
- path: ~/Work/p4/zss/www/blog.zenspider.com/releases type: zenweb cmd: rake sync (optional)
or:
- url: http://example.com/cgi-bin/blog.cgi blog_id: 1 user: username password: passwd extra_headers: blah: whatever
Optional: An array of the project's blog categories. Defaults to project name.
Optional: Name of destination directory for RDoc generated files.
Optional: Should RDoc and ri generation tasks be defined? [default: true]
Allows you to define custom RDoc tasks then use the publish_rdoc task to upload them all. See also #local_rdoc_dir
Optional: An array of remote (rsync) paths to copy rdoc to.
eg:
rdoc_locations << "user@server:Sites/rdoc/#{remote_rdoc_dir}"
Optional: Name of RDoc destination directory on Rubyforge. [default:
name
]
Optional: Flags for RDoc rsync. [default: “-av –delete”]
Declare a dependency on rdoc, IF NEEDED.
# File lib/hoe/publish.rb, line 103 def activate_publish_deps dependency "rdoc", "~> 4.0", :developer if need_rdoc end
Define tasks for plugin.
# File lib/hoe/publish.rb, line 110 def define_publish_tasks if need_rdoc then task :isolate # ensure it exists desc "Generate rdoc" task :docs => [:clobber_docs, :isolate] do sh(*make_rdoc_cmd) end desc "Generate rdoc coverage report" task :dcov => :isolate do sh(*make_rdoc_cmd('-C')) end desc "Remove RDoc files" task :clobber_docs do rm_rf local_rdoc_dir end task :clobber => :clobber_docs desc 'Generate ri locally for testing.' task :ridocs => [:clean, :isolate] do ruby(*make_rdoc_cmd('--ri', '-o', 'ri')) end end desc "Publish RDoc to wherever you want." task :publish_docs => [:clean, :docs] do publish_docs_task end # no doco for this one task :publish_on_announce do publish_on_announce_task end desc 'Generate email announcement file.' task :debug_email do puts generate_email end desc 'Post announcement to blog. Uses the "blogs" array in your hoerc.' task :post_blog do post_blog_task end desc 'Announce your release.' task :announce => [:post_blog, :publish_on_announce ] end
Initialize variables for plugin.
# File lib/hoe/publish.rb, line 91 def initialize_publish self.blog_categories ||= [self.name] self.local_rdoc_dir ||= 'doc' self.need_rdoc ||= true self.rdoc_locations ||= [] self.remote_rdoc_dir ||= self.name self.rsync_args ||= '-av -O --delete' end