summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Arko <mail@arko.net>2015-04-01 01:49:57 +0100
committerAndré Arko <mail@arko.net>2015-04-01 01:49:57 +0100
commitaf7997b290f1217df8d136ebd54c87b3961817af (patch)
tree6f02a98cdf54c197ecfdc47a5848ff75482af6fa
parent58948d2283019bfa467e8dab8e64a9f2ca840ef4 (diff)
parentbb2fabd07cbc722abafa0339457c274c87e07cd6 (diff)
downloadbundler-af7997b290f1217df8d136ebd54c87b3961817af.tar.gz
Merge pull request #3483 from janlelis/master
Improve generating module name from gem name in gem generator
-rw-r--r--lib/bundler/cli/gem.rb4
-rw-r--r--spec/commands/newgem_spec.rb9
2 files changed, 11 insertions, 2 deletions
diff --git a/lib/bundler/cli/gem.rb b/lib/bundler/cli/gem.rb
index 7a0ec0fe9e..a201c89910 100644
--- a/lib/bundler/cli/gem.rb
+++ b/lib/bundler/cli/gem.rb
@@ -20,8 +20,8 @@ module Bundler
underscored_name = name.tr('-', '_')
namespaced_path = name.tr('-', '/')
- constant_name = name.split('_').map{|p| p[0..0].upcase + p[1..-1] unless p.empty?}.join
- constant_name = constant_name.split('-').map{|q| q[0..0].upcase + q[1..-1] }.join('::') if constant_name =~ /-/
+ constant_name = name.gsub(/-[_-]*(?![_-]|$)/){ '::' }.gsub(/([_-]+|(::)|^)(.|$)/){ $2.to_s + $3.upcase }
+
constant_array = constant_name.split('::')
git_user_name = `git config user.name`.chomp
git_user_email = `git config user.email`.chomp
diff --git a/spec/commands/newgem_spec.rb b/spec/commands/newgem_spec.rb
index 406f18e74e..ef653d306d 100644
--- a/spec/commands/newgem_spec.rb
+++ b/spec/commands/newgem_spec.rb
@@ -580,6 +580,15 @@ describe "bundle gem" do
end
end
+ describe "uncommon gem names" do
+ it "can deal with two dashes" do
+ bundle "gem a--a"
+ Bundler.clear_gemspec_cache
+
+ expect(bundled_app("a--a/a--a.gemspec")).to exist
+ end
+ end
+
context "on first run" do
before do
in_app_root