module Hoe::Publish
Publish
plugin for hoe.
Tasks Provided:¶ ↑
- announce
-
Create news email file and optionally publish docs.
- debug_email
-
Generate email announcement file.
- post_blog
-
Post announcement to blog.
- publish_docs
-
Publish
RDoc to ‘rdoc_locations`. - ridocs
-
Generate ri locally for testing.
Extra Configuration Options:¶ ↑
- publish_on_announce
-
Run
publish_docs
when you runrelease
. - blogs
-
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
Attributes
Optional: An array of the project’s blog categories. Defaults to project name.
Optional: Name of destination directory for RDoc generated files.
- default: doc
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. [default: name
]
Optional: Flags for RDoc rsync. [default: “-av –delete”]
Public Instance Methods
Declare a dependency on rdoc, IF NEEDED.
# File lib/hoe/publish.rb, line 102 def activate_publish_deps dependency "rdoc", [">= 4.0", "< 7"], :developer if need_rdoc end
Define tasks for plugin.
# File lib/hoe/publish.rb, line 109 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 sh(*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 ENV["FULL"] 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 90 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