::Rake::TaskLib
Rake tasks for managing your gem.
Here’s a basic example of using it:
Jeweler::Tasks.new do |gem| gem.name = "jeweler" gem.summary = "Simple and opinionated helper for creating Rubygem projects on GitHub" gem.email = "josh@technicalpickles.com" gem.homepage = "http://github.com/technicalpickles/jeweler" gem.description = "Simple and opinionated helper for creating Rubygem projects on GitHub" gem.authors = ["Josh Nichols"] end
The block variable gem is actually a Gem::Specification, so you can do anything you would normally do with a Gem::Specification. For more details, see the official gemspec reference: docs.rubygems.org/read/chapter/20 . In addition, it has a defaults set for you. See Jeweler::Specification for more details.
# File lib/jeweler/tasks.rb, line 33 33: def initialize(gemspec = nil, &gemspec_building_block) 34: @gemspec = gemspec || Gem::Specification.new 35: self.gemspec_building_block = gemspec_building_block 36: 37: Rake.application.jeweler_tasks = self 38: define 39: end
# File lib/jeweler/tasks.rb, line 63 63: def define 64: task :version_required do 65: if jeweler.expects_version_file? && !jeweler.version_file_exists? 66: abort "Expected VERSION or VERSION.yml to exist. See version:write to create an initial one." 67: end 68: end 69: 70: desc "Build gem" 71: task :build => :gemspec do 72: jeweler.build_gem 73: end 74: 75: desc "Install gem using sudo" 76: task :install => [:build] do 77: jeweler.install_gem 78: end 79: 80: desc "Generate and validates gemspec" 81: task :gemspec => ['gemspec:generate', 'gemspec:validate'] 82: 83: namespace :gemspec do 84: desc "Validates the gemspec" 85: task :validate => :version_required do 86: jeweler.validate_gemspec 87: end 88: 89: desc "Generates the gemspec, using version from VERSION" 90: task :generate => :version_required do 91: jeweler.write_gemspec 92: end 93: 94: desc "Display the gemspec for debugging purposes" 95: task :debug do 96: puts jeweler.gemspec_helper.to_ruby 97: end 98: end 99: 100: desc "Displays the current version" 101: task :version => :version_required do 102: $stdout.puts "Current version: #{jeweler.version}" 103: end 104: 105: unless yield_gemspec_set_version? 106: namespace :version do 107: desc "Writes out an explicit version. Respects the following environment variables, or defaults to 0: MAJOR, MINOR, PATCH. Also recognizes BUILD, which defaults to nil" 108: task :write do 109: major, minor, patch, build = ENV['MAJOR'].to_i, ENV['MINOR'].to_i, ENV['PATCH'].to_i, (ENV['BUILD'] || nil ) 110: jeweler.write_version(major, minor, patch, build, :announce => false, :commit => false) 111: $stdout.puts "Updated version: #{jeweler.version}" 112: end 113: 114: namespace :bump do 115: desc "Bump the gemspec by a major version." 116: task :major => [:version_required, :version] do 117: jeweler.bump_major_version 118: $stdout.puts "Updated version: #{jeweler.version}" 119: end 120: 121: desc "Bump the gemspec by a minor version." 122: task :minor => [:version_required, :version] do 123: jeweler.bump_minor_version 124: $stdout.puts "Updated version: #{jeweler.version}" 125: end 126: 127: desc "Bump the gemspec by a patch version." 128: task :patch => [:version_required, :version] do 129: jeweler.bump_patch_version 130: $stdout.puts "Updated version: #{jeweler.version}" 131: end 132: end 133: end 134: end 135: 136: desc "Release gem" 137: task :release do 138: end 139: 140: namespace :github do 141: desc "Release Gem to GitHub" 142: task :release do 143: jeweler.release_gem_to_github 144: end 145: end 146: 147: task :release => 'github:release' 148: 149: namespace :git do 150: desc "Tag a release in Git" 151: task :release do 152: jeweler.release_to_git 153: end 154: end 155: 156: task :release => 'git:release' 157: 158: desc "Check that runtime and development dependencies are installed" 159: task :check_dependencies do 160: jeweler.check_dependencies 161: end 162: 163: namespace :check_dependencies do 164: desc "Check that runtime dependencies are installed" 165: task :runtime do 166: jeweler.check_dependencies(:runtime) 167: end 168: 169: desc"Check that development dependencies are installed" 170: task :development do 171: jeweler.check_dependencies(:development) 172: end 173: 174: end 175: 176: end
# File lib/jeweler/tasks.rb, line 51 51: def yield_gemspec_set_version? 52: yielded_gemspec = @gemspec.dup 53: yielded_gemspec.extend(Jeweler::Specification) 54: yielded_gemspec.files = FileList[] 55: yielded_gemspec.test_files = FileList[] 56: yielded_gemspec.extra_rdoc_files = FileList[] 57: 58: gemspec_building_block.call(yielded_gemspec) if gemspec_building_block 59: 60: ! yielded_gemspec.version.nil? 61: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.