aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bundler/cli
diff options
context:
space:
mode:
authorTony Jian <tonytonyjan@gmail.com>2015-02-21 12:17:19 -0700
committerBM5k <me@bm5k.com>2015-02-21 12:17:19 -0700
commit17a4fc47bfad02de553e5a53b00ad38b4c905e18 (patch)
tree5dcfb339e02d5428b879f8f42ae7d8b229ddc09a /lib/bundler/cli
parent47fe559667ffd8e11169189c1c65c1d86d9e6a72 (diff)
downloadbundler-17a4fc47bfad02de553e5a53b00ad38b4c905e18.tar.gz
prevent naming mistake
Diffstat (limited to 'lib/bundler/cli')
-rw-r--r--lib/bundler/cli/gem.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/bundler/cli/gem.rb b/lib/bundler/cli/gem.rb
index e00994a4..ea15b3b4 100644
--- a/lib/bundler/cli/gem.rb
+++ b/lib/bundler/cli/gem.rb
@@ -40,6 +40,7 @@ module Bundler
:bin => options[:bin],
:bundler_version => bundler_dependency_version
}
+ ensure_safe_gem_name(opts[:name], opts[:constant_array])
templates = {
"Gemfile.tt" => "Gemfile",
@@ -170,5 +171,15 @@ module Bundler
req.join(".")
end
+ def ensure_safe_gem_name name, constant_array
+ if name =~ /^\d/
+ Bundler.ui.error "Invalid gem name #{name} Please give a name which does not start with numbers."
+ exit 1
+ elsif Object.const_defined?(constant_array.first)
+ Bundler.ui.error "Invalid gem name #{name} constant #{constant_array.join("::")} is already in use. Please choose another gem name."
+ exit 1
+ end
+ end
+
end
end