summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2019-04-22 10:24:27 +0200
committerDavid Rodríguez <deivid.rodriguez@riseup.net>2019-04-22 10:33:58 +0200
commit0dff2a9a26ac5afcb76c65a2939f9f72ca613af7 (patch)
tree81d38b6ac8098e575b602ee41a9300b5cd47e439
parentc3b917c620652120dd3c23719d6941be1de4a211 (diff)
downloadbundler-require_relative.tar.gz
Add spec for using relative requiresrequire_relative
-rw-r--r--lib/bundler/rubygems_integration.rb2
-rw-r--r--spec/quality_spec.rb16
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/bundler/rubygems_integration.rb b/lib/bundler/rubygems_integration.rb
index 6d93ed6fa1..32ddf185a0 100644
--- a/lib/bundler/rubygems_integration.rb
+++ b/lib/bundler/rubygems_integration.rb
@@ -637,7 +637,7 @@ module Bundler
end
def all_specs
- require "bundler/remote_specification"
+ require_relative "remote_specification"
Gem::Specification.stubs.map do |stub|
StubSpecification.from_stub(stub)
end
diff --git a/spec/quality_spec.rb b/spec/quality_spec.rb
index 07bd05049a..87279ebb74 100644
--- a/spec/quality_spec.rb
+++ b/spec/quality_spec.rb
@@ -275,4 +275,20 @@ RSpec.describe "The library itself" do
expect(warnings).to be_well_formed
end
end
+
+ it "does not use require internally, but require_relative" do
+ Dir.chdir(root) do
+ exempt = %r{templates/|vendor/}
+ all_bad_requires = []
+ lib_files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb` : `git ls-files -z -- lib`
+ lib_files.split("\x0").each do |filename|
+ next if filename =~ exempt
+ File.readlines(filename).each_with_index do |line, number|
+ line.scan(/^ *require "bundler/).each { all_bad_requires << "#{filename}:#{number.succ}" }
+ end
+ end
+
+ expect(all_bad_requires).to be_empty, "#{all_bad_requires.size} internal requires that should use `require_relative`: #{all_bad_requires}"
+ end
+ end
end