From 74ca9aee407255cced52d48fe4c2d4acac9c5966 Mon Sep 17 00:00:00 2001 From: Marc-Andre Lafortune Date: Mon, 16 Nov 2020 23:00:13 -0500 Subject: [PATCH] New gem template: prefer `require_relative` to `require` --- bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt | 4 ++-- bundler/spec/commands/newgem_spec.rb | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt b/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt index a182b964beb6..7939fffb1ec5 100644 --- a/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +++ b/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt @@ -1,8 +1,8 @@ # frozen_string_literal: true -require "<%= config[:namespaced_path] %>/version" +require_relative "<%=File.basename(config[:namespaced_path])%>/version" <%- if config[:ext] -%> -require "<%= config[:namespaced_path] %>/<%= config[:underscored_name] %>" +require_relative "<%= File.basename(config[:namespaced_path]) %>/<%= config[:underscored_name] %>" <%- end -%> <%- config[:constant_array].each_with_index do |c, i| -%> diff --git a/bundler/spec/commands/newgem_spec.rb b/bundler/spec/commands/newgem_spec.rb index e9e763a06ddc..8aca745bef6a 100644 --- a/bundler/spec/commands/newgem_spec.rb +++ b/bundler/spec/commands/newgem_spec.rb @@ -424,7 +424,7 @@ def create_temporary_dir(dir) it "requires the version file" do bundle "gem #{gem_name}" - expect(bundled_app("#{gem_name}/lib/#{require_path}.rb").read).to match(%r{require "#{require_path}/version"}) + expect(bundled_app("#{gem_name}/lib/#{require_path}.rb").read).to match(%r{require_relative "#{require_relative_path}/version"}) end it "creates a base error class" do @@ -911,6 +911,8 @@ def create_temporary_dir(dir) let(:require_path) { "test_gem" } + let(:require_relative_path) { "test_gem" } + let(:flags) { nil } it "does not nest constants" do @@ -964,6 +966,8 @@ def create_temporary_dir(dir) let(:require_path) { "test/gem" } + let(:require_relative_path) { "gem" } + it "nests constants so they work" do bundle "gem #{gem_name}" expect(bundled_app("#{gem_name}/lib/#{require_path}/version.rb").read).to match(/module Test\n module Gem/)