class Gem::Specification

def initialize_copy other_spec

def initialize_copy other_spec
  self.class.array_attributes.each do |name|
    name = :"@#{name}"
    next unless other_spec.instance_variable_defined? name
    begin
      val = other_spec.instance_variable_get(name)
      if val then
        instance_variable_set name, val.dup
      elsif Gem.configuration.really_verbose
        warn "WARNING: #{full_name} has an invalid nil value for #{name}"
      end
    rescue TypeError
      e = Gem::FormatException.new \
        "#{full_name} has an invalid value for #{name}"
      e.file_path = loaded_from
      raise e
    end
  end
end