lib/cri/command_dsl.rb in cri-2.8.0 vs lib/cri/command_dsl.rb in cri-2.9.0
- old
+ new
@@ -119,22 +119,28 @@
# @return [void]
def option(short, long, desc, params = {}, &block)
requiredness = params.fetch(:argument, :forbidden)
multiple = params.fetch(:multiple, false)
hidden = params.fetch(:hidden, false)
+ default = params.fetch(:default, nil)
if short.nil? && long.nil?
raise ArgumentError, 'short and long options cannot both be nil'
end
+ if default && requiredness != :optional
+ raise ArgumentError, "a default value cannot be specified for options with #{requiredness} values"
+ end
+
@command.option_definitions << {
short: short.nil? ? nil : short.to_s,
long: long.nil? ? nil : long.to_s,
desc: desc,
argument: requiredness,
multiple: multiple,
block: block,
hidden: hidden,
+ default: default,
}
end
alias opt option
# Adds a new option with a required argument to the command. If a block is