Module: Hoe::Package
- Defined in:
- lib/hoe/package.rb
Overview
Package plugin for hoe.
Tasks Provided:
install_gem |
Install the package as a gem. |
release |
Package and upload the release. |
Instance Attribute Summary (collapse)
-
- (Object) need_tar
Optional: Should package create a tarball? [default: true].
-
- (Object) need_zip
Optional: Should package create a zipfile? [default: false].
Instance Method Summary (collapse)
-
- (Object) define_package_tasks
Define tasks for plugin.
-
- (Object) initialize_package
Initialize variables for plugin.
-
- (Object) install_gem(name, version = nil)
Install the named gem.
-
- (Object) pkg_path
Returns the path used for packaging.
-
- (Object) prerelease_version
:nodoc:.
Instance Attribute Details
- (Object) need_tar
Optional: Should package create a tarball? [default: true]
21 22 23 |
# File 'lib/hoe/package.rb', line 21 def need_tar @need_tar end |
- (Object) need_zip
Optional: Should package create a zipfile? [default: false]
26 27 28 |
# File 'lib/hoe/package.rb', line 26 def need_zip @need_zip end |
Instance Method Details
- (Object) define_package_tasks
Define tasks for plugin.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/hoe/package.rb', line 39 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 |
- (Object) initialize_package
Initialize variables for plugin.
31 32 33 34 |
# File 'lib/hoe/package.rb', line 31 def initialize_package self.need_tar ||= true self.need_zip ||= false end |
- (Object) install_gem(name, version = nil)
Install the named gem.
88 89 90 91 92 93 94 |
# File 'lib/hoe/package.rb', line 88 def install_gem name, version = nil gem_cmd = Gem.default_exec_format % 'gem' sudo = 'sudo ' unless Hoe::WINDOZE || ENV["NOSUDO"] local = '--local' unless version version = "--version '#{version}'" if version sh "#{sudo}#{gem_cmd} install #{local} #{name} #{version}" end |
- (Object) pkg_path
Returns the path used for packaging. Convenience method for those that need to write a package hook.
81 82 83 |
# File 'lib/hoe/package.rb', line 81 def pkg_path "pkg/#{spec.full_name}" end |
- (Object) prerelease_version
:nodoc:
96 97 98 99 100 101 102 103 104 105 |
# File 'lib/hoe/package.rb', line 96 def prerelease_version # :nodoc: pre = ENV['PRERELEASE'] || ENV['PRE'] if pre then spec.version.version << "." << pre if pre abort "ERROR: You should format PRE like pre or alpha.1 or something" if (Gem::VERSION < "1.4" and pre !~ /^[a-z]+(\.\d+)?$/) or (Gem::VERSION >= "1.4" and pre !~ /^[a-z]+(\.?\d+)?$/) end end |