mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	[rubygems/rubygems] Allow using Gem::Version without loading the rest of rubygems
				
					
				
			1b862537a5This commit is contained in:
		
							parent
							
								
									e41c195cc5
								
							
						
					
					
						commit
						d044ffd77f
					
				
					 2 changed files with 21 additions and 0 deletions
				
			
		|  | @ -149,6 +149,15 @@ | |||
| # For the last example, single-digit versions are automatically extended with | ||||
| # a zero to give a sensible result. | ||||
| 
 | ||||
| # Our code style opens classes directly without opening the intermediate | ||||
| # modules. This works because tha main entrypoint `rubygems.rb`, which defines | ||||
| # the root `Gem` module, is usually required first. But in this case we want to | ||||
| # allow using `Gem::Version` without loading the rest of rubygems, so we | ||||
| # explicit define the `Gem` placeholder module first. | ||||
| module Gem; end | ||||
| 
 | ||||
| require_relative "deprecate" | ||||
| 
 | ||||
| class Gem::Version | ||||
|   autoload :Requirement, File.expand_path('requirement', __dir__) | ||||
| 
 | ||||
|  |  | |||
|  | @ -17,4 +17,16 @@ class TestProjectSanity < Gem::TestCase | |||
| 
 | ||||
|     assert status.success?, err | ||||
|   end | ||||
| 
 | ||||
|   def test_require_and_use_rubygems_version | ||||
|     err, status = Open3.capture2e( | ||||
|       *ruby_with_rubygems_in_load_path, | ||||
|       "--disable-gems", | ||||
|       "-rrubygems/version", | ||||
|       "-e", | ||||
|       "Gem::Version.new('2.7.0.preview1') >= Gem::Version.new(RUBY_VERSION)" | ||||
|     ) | ||||
| 
 | ||||
|     assert status.success?, err | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 David Rodríguez
						David Rodríguez