class Jeweler

A Jeweler helps you craft the perfect Rubygem. Give him a gemspec, and he takes care of the rest.

def build_gem

def build_gem
  Jeweler::Commands::BuildGem.build_for(self).run
end

def bump_major_version()

1.5.1 -> 2.0.0

Bumps the major version.
def bump_major_version()
  Jeweler::Commands::Version::BumpMajor.build_for(self).run
end

def bump_minor_version()

1.5.1 -> 1.6.0

Bumps the minor version.
def bump_minor_version()
  Jeweler::Commands::Version::BumpMinor.build_for(self).run
end

def bump_patch_version()

1.5.1 -> 1.5.2

Bumps the patch version.
def bump_patch_version()
  Jeweler::Commands::Version::BumpPatch.build_for(self).run
end

def fill_in_gemspec_defaults(gemspec)

def fill_in_gemspec_defaults(gemspec)
  if gemspec.files.nil? || gemspec.files.empty?
    gemspec.files = FileList["[A-Z]*.*", "{bin,generators,lib,test,spec}/**/*"]
  end
  if gemspec.executables.nil? || gemspec.executables.empty?
    gemspec.executables = Dir["#{@base_dir}/bin/*"].map do |f|
      File.basename(f)
    end
  end
  gemspec.has_rdoc = true
  gemspec.rdoc_options << '--inline-source' << '--charset=UTF-8'
  if gemspec.extra_rdoc_files.nil? || gemspec.extra_rdoc_files.empty?
    gemspec.extra_rdoc_files = FileList["README*", "ChangeLog*", "LICENSE*"]
  end
  gemspec
end

def in_git_repo?

def in_git_repo?
  File.exists?(File.join(self.base_dir, '.git'))
end

def initialize(gemspec, base_dir = '.')

def initialize(gemspec, base_dir = '.')
  raise(GemspecError, "Can't create a Jeweler with a nil gemspec") if gemspec.nil?
  @base_dir       = base_dir
  @gemspec        = fill_in_gemspec_defaults(gemspec)
  @repo           = Git.open(base_dir) if in_git_repo?
  @version_helper = Jeweler::VersionHelper.new(@base_dir)
  @output         = $stdout
  @commit         = true
  @gemspec_helper = GemSpecHelper.new(@gemspec, base_dir)
  @rubyforge      = RubyForge.new
end

def install_gem

def install_gem
  Jeweler::Commands::InstallGem.build_for(self).run
end

def major_version

For 1.5.3, this would return 1.
Major version, as defined by the gemspec's Version module.
def major_version
  @version_helper.major
end

def minor_version

For 1.5.3, this would return 5.
Minor version, as defined by the gemspec's Version module.
def minor_version
  @version_helper.minor
end

def patch_version

For 1.5.3, this would return 5.
Patch version, as defined by the gemspec's Version module.
def patch_version
  @version_helper.patch
end

def release

def release
  Jeweler::Commands::Release.build_for(self).run
end

def release_gem_to_rubyforge

def release_gem_to_rubyforge
  Jeweler::Commands::ReleaseToRubyforge.build_for(self).run
end

def setup_rubyforge

def setup_rubyforge
  Jeweler::Commands::SetupRubyforge.build_for(self).run
end

def valid_gemspec?

is the project's gemspec from disk valid?
def valid_gemspec?
  gemspec_helper.valid?
end

def validate_gemspec

GitHub would build from it. See http://gist.github.com/16215
Validates the project's gemspec from disk in an environment similar to how
def validate_gemspec
  Jeweler::Commands::ValidateGemspec.build_for(self).run
end

def version

Human readable version, which is used in the gemspec.
def version
  @version_helper.to_s
end

def write_gemspec

Writes out the gemspec
def write_gemspec
  Jeweler::Commands::WriteGemspec.build_for(self).run
end

def write_version(major, minor, patch, options = {})

Bumps the version, to the specific major/minor/patch version, writing out the appropriate version.rb, and then reloads it.
def write_version(major, minor, patch, options = {})
  command = Jeweler::Commands::Version::Write.build_for(self)
  command.major = major
  command.minor = minor
  command.patch = patch
  command.run
end