# File lib/rubygems/commands/build_command.rb, line 6 def initialize super('build', 'Build a gem from a gemspec') end
# File lib/rubygems/commands/build_command.rb, line 18 def execute gemspec = get_one_gem_name if File.exist? gemspec spec = load_gemspec gemspec if spec then Gem::Builder.new(spec).build else alert_error "Error loading gemspec. Aborting." terminate_interaction 1 end else alert_error "Gemspec file not found: #{gemspec}" terminate_interaction 1 end end
# File lib/rubygems/commands/build_command.rb, line 36 def load_gemspec filename if yaml?(filename) open(filename) do |f| begin Gem::Specification.from_yaml(f) rescue Gem::EndOfYAMLException nil end end else Gem::Specification.load(filename) # can return nil end end
# File lib/rubygems/commands/build_command.rb, line 50 def yaml?(filename) line = open(filename) { |f| line = f.gets } result = line =~ %r{!ruby/object:Gem::Specification} result end