Module: Hoe::Publish

### Home Classes Methods

### In Files

- lib/hoe/publish.rb

### Methods

- #activate_publish_deps
- #define_publish_tasks
- #initialize_publish

### Files

- History.rdoc
- Manifest.txt

### Class/Module Index

Quicksearch

- Hoe
- Hoe::Clean
- Hoe::Compiler
- Hoe::Debug
- Hoe::Deps
- Hoe::Flay
- Hoe::Flog
- Hoe::GemPreludeSucks
- Hoe::Gemcutter
- Hoe::Inline
- Hoe::Newb
- Hoe::Package
- Hoe::Publish
- Hoe::RCov
- Hoe::Racc
- Hoe::Rdoc
- Hoe::Signing
- Hoe::Test
- Rake
- Rake::Task
- Rake::TaskManager
- File
- Object
- String

No matching classes.

# 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 run `release`.
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

blog_categories[RW]

Optional: An array of the project's blog categories. Defaults to project name.

local_rdoc_dir[RW]

Optional: Name of destination directory for RDoc generated files.

default: doc

need_rdoc[RW]

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

rdoc_locations[RW]

Optional: An array of remote (rsync) paths to copy rdoc to.

eg:

    rdoc_locations << "user@server:Sites/rdoc/#{remote_rdoc_dir}"

remote_rdoc_dir[RW]

Optional: Name of RDoc destination directory. [default: `name`]

rsync_args[RW]

Optional: Flags for RDoc rsync. [default: "-av --delete"]

### Public Instance Methods

activate_publish_deps() click to toggle source

Declare a dependency on rdoc, IF NEEDED.

    # File lib/hoe/publish.rb, line 102
    def activate_publish_deps
      dependency "rdoc", "~> 4.0", :developer if need_rdoc
    end

define_publish_tasks() click to toggle source

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
          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_publish() click to toggle source

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

[Validate]

Generated with the Darkfish Rdoc Generator 2.