Skip to content

Commit 3e0fb7d

Browse files
committed
Fix NoMethodError on bundler/inline environment
Fixes #2041 raw_require_paths returns nil variable when running with bundle/inline environment.
1 parent 8271915 commit 3e0fb7d

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

lib/rubygems/basic_specification.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -275,10 +275,14 @@ def matches_for_glob glob # TODO: rename?
275275
# for this spec.
276276

277277
def lib_dirs_glob
278-
dirs = if self.raw_require_paths.size > 1 then
279-
"{#{self.raw_require_paths.join(',')}}"
278+
dirs = if self.raw_require_paths
279+
if self.raw_require_paths.size > 1 then
280+
"{#{self.raw_require_paths.join(',')}}"
281+
else
282+
self.raw_require_paths.first
283+
end
280284
else
281-
self.raw_require_paths.first
285+
"lib" # default value for require_paths for bundler/inline
282286
end
283287

284288
"#{self.full_gem_path}/#{dirs}".dup.untaint

test/rubygems/test_gem_stub_specification.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,18 @@ def test_matches_for_glob
110110
assert_equal code_rb, stub.matches_for_glob('code*').first
111111
end
112112

113+
def test_matches_for_glob_with_bundler_inline
114+
stub = stub_with_extension
115+
code_rb = File.join stub.gem_dir, 'lib', 'code.rb'
116+
FileUtils.mkdir_p File.dirname code_rb
117+
FileUtils.touch code_rb
118+
119+
stub.stub(:raw_require_paths, nil) do
120+
assert_equal code_rb, stub.matches_for_glob('code*').first
121+
end
122+
end
123+
124+
113125
def test_missing_extensions_eh
114126
stub = stub_with_extension do |s|
115127
extconf_rb = File.join s.gem_dir, s.extensions.first

0 commit comments

Comments
 (0)