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