class Gem::Commands::PatchCommand

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/rubygems/commands/patch_command.rb, line 5
def initialize
  super "patch", "Patches the gem with the given patches and generates patched gem.",
    :output => Dir.pwd, :strip => 0

  # Same as 'patch -pNUMBER' on Linux machines
  add_option('-pNUMBER', '--strip=NUMBER', 'Set the file name strip count to NUMBER.') do |number, options|
    options[:strip] = number
  end
end

Public Instance Methods

execute() click to toggle source
# File lib/rubygems/commands/patch_command.rb, line 35
def execute
  gemfile = options[:args].shift
  patches = options[:args]
  
  # No gem
  unless gemfile
    raise Gem::CommandLineError,
      "Please specify a gem file on the command line (e.g. gem patch foo-0.1.0.gem PATCH [PATCH ...])"
  end

  # No patches
  if patches.empty?
    raise Gem::CommandLineError,
      "Please specify patches to apply (e.g. gem patch foo-0.1.0.gem foo.patch bar.patch ...)"
  end

  patcher = Gem::Patcher.new(gemfile, options[:output])
  patcher.patch_with(patches, options[:strip]) 
  patcher.print_results
end