summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Suratna <dennis.suratna@gmail.com>2017-04-09 16:44:31 +0700
committerDennis Suratna <dennis.suratna@gmail.com>2017-04-10 15:47:20 +0700
commit05ab832d5d7b8664fc67757493d95b120505368d (patch)
treea8e2ebe36da0caf0840c9722f78af2ddc37e21ee
parent99a64e25030080ec0c79d52470afea4e22ec8342 (diff)
downloadbundler-05ab832d5d7b8664fc67757493d95b120505368d.tar.gz
Fix spec. Check for requirement pattern
-rw-r--r--lib/bundler/cli/add.rb10
-rw-r--r--spec/commands/add_spec.rb2
2 files changed, 6 insertions, 6 deletions
diff --git a/lib/bundler/cli/add.rb b/lib/bundler/cli/add.rb
index 4664aadb0d..e80c775433 100644
--- a/lib/bundler/cli/add.rb
+++ b/lib/bundler/cli/add.rb
@@ -12,12 +12,12 @@ module Bundler
def run
version = @options[:version].nil? ? nil : @options[:version].split(",").map(&:strip)
- begin
- dependency = Bundler::Dependency.new(@gem_name, version, @options)
- rescue Gem::Requirement::BadRequirementError => e
- Bundler.ui.error(e.message)
- return
+ unless version.nil?
+ version.each do |v|
+ raise InvalidOption, "Invalid gem requirement pattern '#{v}'" unless Gem::Requirement::PATTERN =~ v.to_s
+ end
end
+ dependency = Bundler::Dependency.new(@gem_name, version, @options)
Injector.inject([dependency], :conservative_versioning => @options[:version].nil?) # Perform conservative versioning only when version is not specified
Installer.install(Bundler.root, Bundler.definition)
diff --git a/spec/commands/add_spec.rb b/spec/commands/add_spec.rb
index f06c759f81..ec9ebd16fd 100644
--- a/spec/commands/add_spec.rb
+++ b/spec/commands/add_spec.rb
@@ -88,7 +88,7 @@ RSpec.describe "bundle add" do
it "shows error message when version is not formatted correctly" do
bundle "add 'foo' -v='~>1 . 0'"
- expect(out).to match('Illformed requirement ["~>1 . 0"]')
+ expect(out).to match("Invalid gem requirement pattern '~>1 . 0'")
end
it "shows error message when gem cannot be found" do