module 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
-
Packageand upload the release.
Attributes
Optional: Should package create a tarball? [default: true]
Optional: Should package create a zipfile? [default: false]
Public Instance Methods
Source
# File lib/hoe/package.rb, line 46 def define_package_tasks prerelease_version Gem::PackageTask.new spec do |pkg| pkg.need_tar = @need_tar pkg.need_zip = @need_zip end task(:gem).prerequisites.prepend :clean 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.to_s =~ /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 c = changes[/\d\S+/] abort "Versions don't match: %s vs %s" % [v, version] if v != version abort "Versions don't match %s: %s vs %s" % [history_file, v, c] if v != c end desc "Push gem to package." task :release_to_rubygems => [:clean, :package, :release_sanity] do pkg = "pkg/#{spec.name}-#{spec.version}" gems = Dir["#{pkg}*.gem"] gem_push gems end task :release_to => :release_to_rubygems end
Define tasks for plugin.
Source
# File lib/hoe/package.rb, line 142 def gem_push gems with_config do |config, _| otp_command = config["otp_command"] ENV["GEM_HOST_OTP_CODE"] = `#{otp_command}`.chomp if otp_command end gems.each do |g| sh Gem.ruby, "-S", "gem", "push", g end end
Push gems to server.
Source
# File lib/hoe/package.rb, line 38 def initialize_package self.need_tar ||= false self.need_zip ||= false end
Initialize variables for plugin.
Source
# File lib/hoe/package.rb, line 110 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" sudo = "sudo " unless should_not_sudo local = "--local" unless version version = "--version '#{version}'" if version cmd = "#{sudo}gem install #{local} #{name} #{version}" cmd += " --no-document" unless rdoc cmd += " #{null_dev}" unless Rake.application.options.trace result = sh cmd Gem::Specification.reset result end
Install the named gem.
Source
# File lib/hoe/package.rb, line 103 def pkg_path "pkg/#{spec.full_name}" end
Returns the path used for packaging. Convenience method for those that need to write a package hook.