[前][次][番号順一覧][スレッド一覧]

ruby-changes:70915

From: Yusuke <ko1@a...>
Date: Thu, 20 Jan 2022 01:05:05 +0900 (JST)
Subject: [ruby-changes:70915] 7353f950c3 (master): [rubygems/rubygems] Change generated namespaced test class name in minitest

https://git.ruby-lang.org/ruby.git/commit/?id=7353f950c3

From 7353f950c3229a4b24482af99d589ea56982a285 Mon Sep 17 00:00:00 2001
From: Yusuke Nakamura <yusuke1994525@g...>
Date: Wed, 19 Jan 2022 17:52:27 +0900
Subject: [rubygems/rubygems] Change generated namespaced test class name in
 minitest

* `foo` => `TestFoo`
* `foo_bar` => `TestFooBar`
* `foo-bar` => `Foo::TestBar`

https://github.com/rubygems/rubygems/commit/353cdd61c3
---
 lib/bundler/cli/gem.rb                                       | 2 ++
 lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt | 2 +-
 spec/bundler/commands/newgem_spec.rb                         | 2 +-
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/bundler/cli/gem.rb b/lib/bundler/cli/gem.rb
index 2c22ff8babe..c4c76d1b69d 100644
--- a/lib/bundler/cli/gem.rb
+++ b/lib/bundler/cli/gem.rb
@@ -38,6 +38,7 @@ module Bundler https://github.com/ruby/ruby/blob/trunk/lib/bundler/cli/gem.rb#L38
       namespaced_path = name.tr("-", "/")
       constant_name = name.gsub(/-[_-]*(?![_-]|$)/) { "::" }.gsub(/([_-]+|(::)|^)(.|$)/) { $2.to_s + $3.upcase }
       constant_array = constant_name.split("::")
+      minitest_constant_name = constant_array.clone.tap {|a| a[-1] = "Test#{a[-1]}" }.join("::") # Foo::Bar => Foo::TestBar
 
       use_git = Bundler.git_present? && options[:git]
 
@@ -69,6 +70,7 @@ module Bundler https://github.com/ruby/ruby/blob/trunk/lib/bundler/cli/gem.rb#L70
         :git              => use_git,
         :github_username  => github_username.empty? ? "[USERNAME]" : github_username,
         :required_ruby_version => required_ruby_version,
+        :minitest_constant_name => minitest_constant_name,
       }
       ensure_safe_gem_name(name, constant_array)
 
diff --git a/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt b/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt
index 971285c21d7..4b35a630714 100644
--- a/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt
+++ b/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt
@@ -2,7 +2,7 @@ https://github.com/ruby/ruby/blob/trunk/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt#L2
 
 require "test_helper"
 
-class Test<%= config[:constant_name].gsub('::', '') %> < Minitest::Test
+class <%= config[:minitest_constant_name] %> < Minitest::Test
   def test_that_it_has_a_version_number
     refute_nil ::<%= config[:constant_name] %>::VERSION
   end
diff --git a/spec/bundler/commands/newgem_spec.rb b/spec/bundler/commands/newgem_spec.rb
index 49ab4a366d5..55a04b69c59 100644
--- a/spec/bundler/commands/newgem_spec.rb
+++ b/spec/bundler/commands/newgem_spec.rb
@@ -1369,7 +1369,7 @@ RSpec.describe "bundle gem" do https://github.com/ruby/ruby/blob/trunk/spec/bundler/commands/newgem_spec.rb#L1369
 
     let(:minitest_test_file_path) { "test/test/test_gem.rb" }
 
-    let(:minitest_test_class_name) { "class TestTestGem < Minitest::Test" }
+    let(:minitest_test_class_name) { "class Test::TestGem < Minitest::Test" }
 
     it "nests constants so they work" do
       bundle "gem #{gem_name}"
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]