mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[rubygems/rubygems] Error out if there are multiple gemspecs and no gemspec is specified
547947bbf0
This commit is contained in:
parent
400d693863
commit
b11cfed4c4
2 changed files with 17 additions and 34 deletions
|
@ -63,11 +63,18 @@ Gems can be saved to a specified filename with the output option:
|
||||||
private
|
private
|
||||||
|
|
||||||
def gem_name
|
def gem_name
|
||||||
get_one_optional_argument || find_gemspecs.first
|
get_one_optional_argument || find_gemspec
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_gemspecs
|
def find_gemspec
|
||||||
Dir.glob("*.gemspec").sort
|
gemspecs = Dir.glob("*.gemspec").sort
|
||||||
|
|
||||||
|
if gemspecs.size > 1
|
||||||
|
alert_error "Multiple gemspecs found: #{gemspecs}, please specify one"
|
||||||
|
terminate_interaction(1)
|
||||||
|
end
|
||||||
|
|
||||||
|
gemspecs.first
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_gem(gem_name = get_one_optional_argument)
|
def build_gem(gem_name = get_one_optional_argument)
|
||||||
|
|
|
@ -293,19 +293,18 @@ class TestGemCommandsBuildCommand < Gem::TestCase
|
||||||
|
|
||||||
use_ui @ui do
|
use_ui @ui do
|
||||||
Dir.chdir(gemspec_dir) do
|
Dir.chdir(gemspec_dir) do
|
||||||
|
assert_raises Gem::MockGemUi::TermError do
|
||||||
@cmd.execute
|
@cmd.execute
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
output = @ui.output.split("\n")
|
gemspecs = ["another_gem-2.gemspec", "some_gem-2.gemspec"]
|
||||||
assert_equal " Successfully built RubyGem", output.shift
|
assert_equal "", @ui.output
|
||||||
assert_equal " Name: another_gem", output.shift
|
assert_equal @ui.error, "ERROR: Multiple gemspecs found: #{gemspecs}, please specify one\n"
|
||||||
assert_equal " Version: 2", output.shift
|
|
||||||
assert_equal " File: another_gem-2.gem", output.shift
|
|
||||||
assert_equal [], output
|
|
||||||
|
|
||||||
expected_gem = File.join(gemspec_dir, File.basename(another_gem.cache_file))
|
expected_gem = File.join(gemspec_dir, File.basename(another_gem.cache_file))
|
||||||
assert File.exist?(expected_gem)
|
refute File.exist?(expected_gem)
|
||||||
end
|
end
|
||||||
|
|
||||||
def util_test_build_gem(gem)
|
def util_test_build_gem(gem)
|
||||||
|
@ -331,29 +330,6 @@ class TestGemCommandsBuildCommand < Gem::TestCase
|
||||||
assert_equal "this is a summary", spec.summary
|
assert_equal "this is a summary", spec.summary
|
||||||
end
|
end
|
||||||
|
|
||||||
def util_test_build_gem(gem)
|
|
||||||
use_ui @ui do
|
|
||||||
Dir.chdir @tempdir do
|
|
||||||
@cmd.execute
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
output = @ui.output.split "\n"
|
|
||||||
assert_equal " Successfully built RubyGem", output.shift
|
|
||||||
assert_equal " Name: some_gem", output.shift
|
|
||||||
assert_equal " Version: 2", output.shift
|
|
||||||
assert_equal " File: some_gem-2.gem", output.shift
|
|
||||||
assert_equal [], output
|
|
||||||
|
|
||||||
gem_file = File.join @tempdir, File.basename(gem.cache_file)
|
|
||||||
assert File.exist?(gem_file)
|
|
||||||
|
|
||||||
spec = Gem::Package.new(gem_file).spec
|
|
||||||
|
|
||||||
assert_equal "some_gem", spec.name
|
|
||||||
assert_equal "this is a summary", spec.summary
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_execute_force
|
def test_execute_force
|
||||||
gemspec_file = File.join(@tempdir, @gem.spec_name)
|
gemspec_file = File.join(@tempdir, @gem.spec_name)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue