# 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