# 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
# 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