File tree Expand file tree Collapse file tree 2 files changed +17
-8
lines changed Expand file tree Collapse file tree 2 files changed +17
-8
lines changed Original file line number Diff line number Diff line change 1
1
require_relative '../../spec_helper'
2
+ require_relative '../../fixtures/code_loading'
2
3
require_relative 'fixtures/classes'
3
4
require 'thread'
4
5
33
34
describe "Module#autoload" do
34
35
before :all do
35
36
@non_existent = fixture __FILE__ , "no_autoload.rb"
36
-
37
- # Require RubyGems eagerly, to ensure #require is already the RubyGems
38
- # version, before starting #autoload specs which snapshot #require, and
39
- # could end up redefining #require as the original core Kernel#require.
40
- begin
41
- require "rubygems"
42
- rescue LoadError
43
- end
37
+ CodeLoadingSpecs . preload_rubygems
44
38
end
45
39
46
40
before :each do
Original file line number Diff line number Diff line change @@ -12,7 +12,22 @@ def load(name, wrap=false)
12
12
end
13
13
end
14
14
15
+ def self . preload_rubygems
16
+ # Require RubyGems eagerly, to ensure #require is already the RubyGems
17
+ # version and RubyGems is only loaded once, before starting #require/#autoload specs
18
+ # which snapshot $LOADED_FEATURES and could cause RubyGems to load twice.
19
+ # #require specs also snapshot #require, and could end up redefining #require as the original core Kernel#require.
20
+ @rubygems ||= begin
21
+ require "rubygems"
22
+ true
23
+ rescue LoadError
24
+ true
25
+ end
26
+ end
27
+
15
28
def self . spec_setup
29
+ preload_rubygems
30
+
16
31
@saved_loaded_features = $LOADED_FEATURES. clone
17
32
@saved_load_path = $LOAD_PATH. clone
18
33
ScratchPad . record [ ]
You can’t perform that action at this time.
0 commit comments