1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[bundler/bundler] Add --[no-]git option to bundle gem

I think using `--no-git` can be useful when creating gems inside
monorepos.

https://github.com/bundler/bundler/commit/154c687310
This commit is contained in:
David Rodríguez 2019-07-24 12:24:55 +02:00 committed by SHIBATA Hiroshi
parent cb71930351
commit b587e8c7f1
Notes: git 2019-08-31 04:40:14 +09:00
3 changed files with 38 additions and 1 deletions

View file

@ -538,6 +538,7 @@ module Bundler
:lazy_default => [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? }, :lazy_default => [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? },
:desc => "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)" :desc => "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)"
method_option :ext, :type => :boolean, :default => false, :desc => "Generate the boilerplate for C extension code" method_option :ext, :type => :boolean, :default => false, :desc => "Generate the boilerplate for C extension code"
method_option :git, :type => :boolean, :default => true, :desc => "Initialize a git repo inside your library."
method_option :mit, :type => :boolean, :desc => "Generate an MIT license file. Set a default with `bundle config set gem.mit true`." method_option :mit, :type => :boolean, :desc => "Generate an MIT license file. Set a default with `bundle config set gem.mit true`."
method_option :test, :type => :string, :lazy_default => "rspec", :aliases => "-t", :banner => "rspec", 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 set gem.test rspec`." :desc => "Generate a test directory for your library, either rspec or minitest. Set a default with `bundle config set gem.test rspec`."

View file

@ -148,7 +148,7 @@ module Bundler
end end
end end
if Bundler.git_present? if Bundler.git_present? && options[:git]
Bundler.ui.info "Initializing git repo in #{target}" Bundler.ui.info "Initializing git repo in #{target}"
Dir.chdir(target) do Dir.chdir(target) do
`git init` `git init`

View file

@ -60,6 +60,42 @@ RSpec.describe "bundle gem" do
end end
end end
describe "git repo initialization" do
let(:gem_name) { "test-gem" }
shared_examples_for "a gem with an initial git repo" do
before do
execute_bundle_gem(gem_name, flags)
end
it "generates a gem skeleton with a .git folder" do
gem_skeleton_assertions(gem_name)
expect(bundled_app("test-gem/.git")).to exist
end
end
context "when using the default" do
it_behaves_like "a gem with an initial git repo" do
let(:flags) { "" }
end
end
context "when explicitly passing --git" do
it_behaves_like "a gem with an initial git repo" do
let(:flags) { "--git" }
end
end
context "when passing --no-git" do
before do
execute_bundle_gem(gem_name, "--no-git")
end
it "generates a gem skeleton without a .git folder" do
gem_skeleton_assertions(gem_name)
expect(bundled_app("test-gem/.git")).not_to exist
end
end
end
shared_examples_for "--mit flag" do shared_examples_for "--mit flag" do
before do before do
execute_bundle_gem(gem_name, "--mit") execute_bundle_gem(gem_name, "--mit")