summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2016-08-25 15:42:20 -0500
committerSamuel Giddins <segiddins@segiddins.me>2016-08-25 15:42:20 -0500
commit065388971e4e970194dda8b3be22cb30aa6bcc47 (patch)
tree854f780b0030a99e2acdd014c5e49550688ee892
parentc71f43fbcb9ee25bc4466137cc29545cda1375e2 (diff)
downloadbundler-seg-warn-on-unknown-ops.tar.gz
[DSL] Warn on invalid options instead of raisingseg-warn-on-unknown-ops
-rw-r--r--lib/bundler/dsl.rb27
1 files changed, 14 insertions, 13 deletions
diff --git a/lib/bundler/dsl.rb b/lib/bundler/dsl.rb
index b064c80d4c..7585a8c6a2 100644
--- a/lib/bundler/dsl.rb
+++ b/lib/bundler/dsl.rb
@@ -382,20 +382,21 @@ module Bundler
opts["optional"] ||= false
end
- def validate_keys(command, opts, valid_keys)
+ def validate_keys(command, opts, valid_keys, raise_on_invalid_keys = false)
invalid_keys = opts.keys - valid_keys
- if invalid_keys.any?
- message = String.new
- message << "You passed #{invalid_keys.map {|k| ":" + k }.join(", ")} "
- message << if invalid_keys.size > 1
- "as options for #{command}, but they are invalid."
- else
- "as an option for #{command}, but it is invalid."
- end
-
- message << " Valid options are: #{valid_keys.join(", ")}"
- raise InvalidOption, message
- end
+ return true if invalid_keys.empty?
+ message = String.new
+ message << "You passed #{invalid_keys.map {|k| ":" + k }.join(", ")} "
+ message << if invalid_keys.size > 1
+ "as options for #{command}, but they are invalid."
+ else
+ "as an option for #{command}, but it is invalid."
+ end
+
+ message << " Valid options are: #{valid_keys.join(", ")}"
+ raise InvalidOption, message if raise_on_invalid_keys
+ Bundler.ui.warn(message)
+ false
end
def normalize_source(source)