summaryrefslogtreecommitdiff
path: root/lib/slop/parser.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/slop/parser.rb')
-rw-r--r--lib/slop/parser.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/slop/parser.rb b/lib/slop/parser.rb
index 3cba82b..463e75a 100644
--- a/lib/slop/parser.rb
+++ b/lib/slop/parser.rb
@@ -80,6 +80,15 @@ module Slop
@arguments += ignored_args
+ if !suppress_errors?
+ unused_options.each do |o|
+ if o.config[:required]
+ pretty_flags = o.flags.map { |f| "`#{f}'" }.join(", ")
+ raise MissingRequiredOption, "missing required option #{pretty_flags}"
+ end
+ end
+ end
+
Result.new(self).tap do |result|
used_options.each { |o| o.finish(result) }
end