class Gem::Commands::BuildCommand

Public Class Methods

new() click to toggle source
Calls superclass method Gem::Command.new
# File lib/rubygems/commands/build_command.rb, line 7
def initialize
  super 'build', 'Build a gem from a gemspec'

  add_option '--force', 'skip validation of the spec' do |value, options|
    options[:force] = true
  end

  add_option '--strict', 'consider warnings as errors when validating the spec' do |value, options|
    options[:strict] = true
  end

  add_option '-o', '--output FILE', 'output gem with the given filename' do |value, options|
    options[:output] = value
  end
end

Public Instance Methods

execute() click to toggle source
# File lib/rubygems/commands/build_command.rb, line 55
def execute
  gemspec = get_one_gem_name

  unless File.exist? gemspec
    gemspec += '.gemspec' if File.exist? gemspec + '.gemspec'
  end

  if File.exist? gemspec
    Dir.chdir(File.dirname(gemspec)) do
      spec = Gem::Specification.load File.basename(gemspec)

      if spec
        Gem::Package.build(
          spec,
          options[:force],
          options[:strict],
          options[:output]
        )
      else
        alert_error "Error loading gemspec. Aborting."
        terminate_interaction 1
      end
    end
  else
    alert_error "Gemspec file not found: #{gemspec}"
    terminate_interaction 1
  end
end