aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/builder.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/builder.rb')
-rw-r--r--lib/rubygems/builder.rb23
1 files changed, 18 insertions, 5 deletions
diff --git a/lib/rubygems/builder.rb b/lib/rubygems/builder.rb
index 2bcd4b0bb3..a5f8fec352 100644
--- a/lib/rubygems/builder.rb
+++ b/lib/rubygems/builder.rb
@@ -1,3 +1,9 @@
+######################################################################
+# This file is imported from the rubygems project.
+# DO NOT make modifications in this repo. They _will_ be reverted!
+# File a patch instead and assign it to Ryan Davis or Eric Hodel.
+######################################################################
+
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
@@ -6,6 +12,16 @@
require 'rubygems/user_interaction'
+begin
+ require 'psych'
+rescue LoadError
+end
+
+Gem.load_yaml
+
+require 'rubygems/package'
+require 'rubygems/security'
+
##
# The Builder class processes RubyGem specification files
# to produce a .gem file.
@@ -20,10 +36,6 @@ class Gem::Builder
# spec:: [Gem::Specification] The specification instance
def initialize(spec)
- require "yaml"
- require "rubygems/package"
- require "rubygems/security"
-
@spec = spec
end
@@ -72,7 +84,8 @@ EOM
def write_package
open @spec.file_name, 'wb' do |gem_io|
Gem::Package.open gem_io, 'w', @signer do |pkg|
- pkg.metadata = @spec.to_yaml
+ yaml = @spec.to_yaml
+ pkg.metadata = yaml
@spec.files.each do |file|
next if File.directory? file