@@ -37,6 +37,12 @@ def assert_catch_all_hash(key, value)
3737 assert_boolean "#{ key } .required" , value [ 'required' ]
3838 end
3939
40+ def assert_default_command ( key , value )
41+ return unless value
42+
43+ assert [ true , false , nil , 'force' ] . include? ( value ) , "#{ key } must be a boolean, or the string 'force'"
44+ end
45+
4046 def assert_dependencies ( key , value )
4147 return unless value
4248
@@ -145,7 +151,7 @@ def assert_command(key, value)
145151 assert_optional_string "#{ key } .function" , value [ 'function' ]
146152
147153 assert_boolean "#{ key } .private" , value [ 'private' ]
148- assert_boolean "#{ key } .default" , value [ 'default' ]
154+ assert_default_command "#{ key } .default" , value [ 'default' ]
149155 assert_expose "#{ key } .expose" , value [ 'expose' ]
150156 assert_version "#{ key } .version" , value [ 'version' ]
151157 assert_catch_all "#{ key } .catch_all" , value [ 'catch_all' ]
@@ -171,10 +177,6 @@ def assert_command(key, value)
171177 "#{ key } .function must contain lowercase alphanumeric characters and underscores only"
172178 end
173179
174- if value [ 'default' ]
175- assert value [ 'args' ] , "#{ key } .default makes no sense without args"
176- end
177-
178180 if value [ 'catch_all' ] && value [ 'args' ]
179181 repeatable_arg = value [ 'args' ] . find { |a | a [ 'repeatable' ] } &.dig 'name'
180182 refute repeatable_arg , "#{ key } .catch_all makes no sense with repeatable arg (#{ repeatable_arg } )"
0 commit comments