Class: Hoe

Class | Hoe
In: | lib/hoe.rb
Parent: | Object

hoe - a tool to help rake

Hoe is a simple rake/rubygems helper for project Rakefiles. It generates all the usual tasks for projects including rdoc generation, testing, packaging, and deployment.

## Using Hoe

### Basics

Use this as a minimal starting point:

      require 'hoe'

      Hoe.new("project_name", '1.0.0') do |p|
        p.rubyforge_name = "rf_project"
        # add other details here
      end

      # add other tasks here

### Tasks Provided:

- announce - Generate email announcement file and post to rubyforge.
- audit - Run ZenTest against the package
- check_manifest - Verify the manifest
- clean - Clean up all the extras
- config_hoe - Create a fresh ~/.hoerc file
- debug_gem - Show information about the gem.
- default - Run the default tasks
- docs - Build the docs HTML Files
- email - Generate email announcement file.
- gem - Build the gem file only.
- install - Install the package. Uses PREFIX and RUBYLIB
- install_gem - Install the package as a gem
- multi - Run the test suite using multiruby
- package - Build all the packages
- post_blog - Post announcement to blog.
- post_news - Post announcement to rubyforge.
- publish_docs - Publish RDoc to RubyForge
- release - Package and upload the release to rubyforge.
- ridocs - Generate ri locally for testing
- test - Run the test suite. Use FILTER to add to the command line.
- test_deps - Show which test files fail when run alone.
- uninstall - Uninstall the package.

### Methods

paragraphs_of

### Constants

VERSION | = | '1.2.1'
PREFIX | = | ENV['PREFIX'] || ruby_prefix |  | Used to specify a custom install location (for rake install).
RUBY_DEBUG | = | ENV['RUBY_DEBUG'] |  | Used to add extra flags to RUBY_FLAGS.
RUBY_FLAGS | = | ENV['RUBY_FLAGS'] || default_ruby_flags |  | Used to specify flags to ruby [has smart default].
FILTER | = | ENV['FILTER'] |  | Used to add flags to test_unit (e.g., -n test_borked).

### Attributes

author | [RW] | Recommended: The author(s) of the package. (can be array) Really. Set this or we‘ll tease you.
changes | [RW] | Recommended: A description of the release‘s latest changes.
clean_globs | [RW] | Optional: An array of file patterns to delete on clean.
description | [RW] | Recommended: A description of the project.
email | [RW] | Recommended: The author‘s email address(es). (can be array)
extra_deps | [RW] | Optional: An array of rubygem dependencies.
name | [RW] | MANDATORY: The name of the release.
need_tar | [RW] | Optional: Should package create a tarball? [default: true]
need_zip | [RW] | Optional: Should package create a zipfile? [default: false]
rdoc_pattern | [RW] | Optional: A regexp to match documentation files against the manifest.
remote_rdoc_dir | [RW] | Optional: Name of RDoc destination directory on Rubyforge. [default: `name`]
rsync_args | [RW] | Optional: Flags for RDoc rsync. [default: "-av —delete"]
rubyforge_name | [RW] | Optional: The name of the rubyforge project. [default: name.downcase]
spec_extras | [RW] | Optional: A hash of extra values to set in the gemspec. Value may be a proc.
summary | [RW] | Recommended: A short summary of the project.
test_globs | [RW] | Optional: An array of test file patterns [default: test/**/test_*.rb]
url | [RW] | Recommended: The url(s) of the project. (can be array)
version | [RW] | MANDATORY: The version. Don‘t hardcode! use a constant in the project.

### Public Instance methods

paragraphs_of(path, *paragraphs)

Reads a file at `path` and spits out an array of the `paragraphs` specified.

      changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
      summary, *description = p.paragraphs_of('README.txt', 3, 3..8)

[Validate]