diff options
| author | OKURA Masafumi <masafumi.o1988@gmail.com> | 2022-03-27 22:26:09 +0900 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2026-02-13 05:29:04 +0000 |
| commit | e064d0d92518209329297cb756f22a2287efd25a (patch) | |
| tree | ff3e8b5ed13d8fa3a554127c35c55632c5875162 | |
| parent | 3dc8ce28b017389eaa3caf0e79823b5330616f13 (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.rb | 4 | ||||
| -rw-r--r-- | spec/bundler/commands/newgem_spec.rb | 5 |
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}") } |
