Module: Hoe::Package

### Home Classes Methods

### In Files

- lib/hoe/package.rb

### Methods

- #define_package_tasks
- #initialize_package
- #install_gem
- #pkg_path

### Files

- History.txt
- 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::RubyForge
- Hoe::Signing
- Hoe::Test
- Rake
- Rake::Task
- Rake::TaskManager
- File
- Object
- String

No matching classes.

# Hoe::Package

Package plugin for hoe.

### Tasks Provided:

install_gem | Install the package as a gem.
prerelease | Hook for pre-release actions like sanity checks.
postrelease | Hook for post-release actions like release announcements.
release | Package and upload the release.

### Attributes

need_tar[RW]

Optional: Should package create a tarball? [default: true]

need_zip[RW]

Optional: Should package create a zipfile? [default: false]

### Public Instance Methods

define_package_tasks() click to toggle source

Define tasks for plugin.

    # File lib/hoe/package.rb, line 41
    def define_package_tasks
      prerelease_version

      Gem::PackageTask.new spec do |pkg|
        pkg.need_tar = @need_tar
        pkg.need_zip = @need_zip
      end

      desc 'Install the package as a gem. (opt. NOSUDO=1)'
      task :install_gem => [:clean, :package, :check_extra_deps] do
        install_gem Dir['pkg/*.gem'].first
      end

      desc 'Package and upload; Requires VERSION=x.y.z (optional PRE=a.1)'
      task :release => [:prerelease, :release_to, :postrelease]

      # no doco, invisible hook
      task :prerelease do
        abort "Fix your version before you release" if spec.version =~ /borked/
      end

      # no doco, invisible hook
      task :release_to

      # no doco, invisible hook
      task :postrelease

      desc "Sanity checks for release"
      task :release_sanity do
        v = ENV["VERSION"] or abort "Must supply VERSION=x.y.z"

        pre = ENV['PRERELEASE'] || ENV['PRE']
        v += ".#{pre}" if pre

        abort "Versions don't match #{v} vs #{version}" if v != version
      end
    end

initialize_package() click to toggle source

Initialize variables for plugin.

    # File lib/hoe/package.rb, line 33
    def initialize_package
      self.need_tar ||= false
      self.need_zip ||= false
    end

install_gem(name, version = nil, rdoc=true) click to toggle source

Install the named gem.

    # File lib/hoe/package.rb, line 90
    def install_gem name, version = nil, rdoc=true
      should_not_sudo = Hoe::WINDOZE || ENV["NOSUDO"] || File.writable?(Gem.dir)
      null_dev = Hoe::WINDOZE ? '> NUL 2>&1' : '> /dev/null 2>&1'

      gem_cmd = Gem.default_exec_format % 'gem'
      sudo    = 'sudo '                  unless should_not_sudo
      local   = '--local'                unless version
      version = "--version '#{version}'" if     version

      cmd  = "#{sudo}#{gem_cmd} install #{local} #{name} #{version}"
      cmd += " --no-rdoc --no-ri" unless rdoc
      cmd += " #{null_dev}" unless Rake.application.options.trace

      puts cmd if Rake.application.options.trace
      system cmd
    end

pkg_path() click to toggle source

Returns the path used for packaging. Convenience method for those that need to write a package hook.

    # File lib/hoe/package.rb, line 83
    def pkg_path
      "pkg/#{spec.full_name}"
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.