summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOKURA Masafumi <masafumi.o1988@gmail.com>2022-03-27 22:26:09 +0900
committergit <svn-admin@ruby-lang.org>2026-02-13 05:29:04 +0000
commite064d0d92518209329297cb756f22a2287efd25a (patch)
treeff3e8b5ed13d8fa3a554127c35c55632c5875162
parent3dc8ce28b017389eaa3caf0e79823b5330616f13 (diff)
[ruby/rubygems] Raise error when gem contains capital letters
The problem is described in https://github.com/rubygems/rubygems/issues/5431 The guide ( https://guides.rubygems.org/name-your-gem/ ) says > DON’T USE UPPERCASE LETTERS so `bundle gem` command should respect it. https://github.com/ruby/rubygems/commit/ea1b1e2209
-rw-r--r--lib/bundler/cli/gem.rb4
-rw-r--r--spec/bundler/commands/newgem_spec.rb5
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/bundler/cli/gem.rb b/lib/bundler/cli/gem.rb
index 236ce530ec..783a833e77 100644
--- a/lib/bundler/cli/gem.rb
+++ b/lib/bundler/cli/gem.rb
@@ -430,8 +430,8 @@ module Bundler
end
def ensure_safe_gem_name(name, constant_array)
- if /^\d/.match?(name)
- Bundler.ui.error "Invalid gem name #{name} Please give a name which does not start with numbers."
+ if /(^\d)|[A-Z]/.match?(name)
+ Bundler.ui.error "Invalid gem name #{name} Please give a name which does not start with numbers nor include capital letters."
exit 1
end
diff --git a/spec/bundler/commands/newgem_spec.rb b/spec/bundler/commands/newgem_spec.rb
index 06c226f9e5..32f5e790af 100644
--- a/spec/bundler/commands/newgem_spec.rb
+++ b/spec/bundler/commands/newgem_spec.rb
@@ -1982,6 +1982,11 @@ Usage: "bundle gem NAME [OPTIONS]"
it { expect(err).to include("Invalid gem name #{subject}") }
end
+ context "including capital letter" do
+ subject { "CAPITAL" }
+ it { expect(err).to include("Invalid gem name #{subject}") }
+ end
+
context "starting with an existing const name" do
subject { "gem-somenewconstantname" }
it { expect(err).not_to include("Invalid gem name #{subject}") }