diff options
author | Ben Brady <bbrady@edgecast.com> | 2015-06-30 16:18:05 -0700 |
---|---|---|
committer | Ben Brady <bbrady@edgecast.com> | 2015-06-30 16:31:11 -0700 |
commit | ee153e16997d8aa44f1bc8e64b4ded8bf5961d8d (patch) | |
tree | cb7511aeda425bf1543ac286208c68b09d7d1de8 /lib | |
parent | 045f807670ef3d8caead25b36d7f5de5ef2374cf (diff) | |
download | slop-ee153e16997d8aa44f1bc8e64b4ded8bf5961d8d.tar.gz |
#163 only raise MissingArgument if not default_value
Diffstat (limited to 'lib')
-rw-r--r-- | lib/slop/option.rb | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/slop/option.rb b/lib/slop/option.rb index 2164f1d..3e414f9 100644 --- a/lib/slop/option.rb +++ b/lib/slop/option.rb @@ -47,11 +47,16 @@ module Slop def ensure_call(value) @count += 1 - if value.nil? && expects_argument? && !suppress_errors? - raise Slop::MissingArgument.new("missing argument for #{flag}", flags) + if value.nil? && expects_argument? + if default_value + @value = default_value + elsif !suppress_errors? + raise Slop::MissingArgument.new("missing argument for #{flag}", flags) + end + else + @value = call(value) end - @value = call(value) block.call(@value) if block.respond_to?(:call) end |