summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2017-01-01 13:13:10 -0600
committerSamuel Giddins <segiddins@segiddins.me>2017-01-01 13:13:10 -0600
commit748b1ba655158372f8d91a7b8e2a3eac5feb7235 (patch)
tree4c900fa27c89f23d1991e7cb011d255d5fad6410
parentecae8bfff76854c2bf27339240f7044758533ef9 (diff)
downloadbundler-748b1ba655158372f8d91a7b8e2a3eac5feb7235.tar.gz
[CLI] Dont override Kernel#gem for bundle gem
-rw-r--r--lib/bundler/cli.rb15
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/bundler/cli.rb b/lib/bundler/cli.rb
index ba6a58db1d..1fea6fdcb5 100644
--- a/lib/bundler/cli.rb
+++ b/lib/bundler/cli.rb
@@ -401,6 +401,8 @@ module Bundler
Viz.new(options.dup).run
end
+ old_gem = instance_method(:gem)
+
desc "gem GEM [OPTIONS]", "Creates a skeleton for creating a rubygem"
method_option :exe, :type => :boolean, :default => false, :aliases => ["--bin", "-b"], :desc => "Generate a binary executable for your library."
method_option :coc, :type => :boolean, :desc => "Generate a code of conduct file. Set a default with `bundle config gem.coc true`."
@@ -412,10 +414,19 @@ module Bundler
method_option :test, :type => :string, :lazy_default => "rspec", :aliases => "-t", :banner => "rspec",
:desc => "Generate a test directory for your library, either rspec or minitest. Set a default with `bundle config gem.test rspec`."
def gem(name)
- require "bundler/cli/gem"
- Gem.new(options, name, self).run
end
+ commands["gem"].tap do |gem_command|
+ def gem_command.run(instance, args = [])
+ require "bundler/cli/gem"
+ Gem.new(instance.options, *args, instance).run
+ end
+ end
+
+ undef_method(:gem)
+ define_method(:gem, old_gem)
+ private :gem
+
def self.source_root
File.expand_path(File.join(File.dirname(__FILE__), "templates"))
end