44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/climate/parser.rb', line 44
def check_arguments(args, command=self)
if args.size > cli_arguments.size
raise UnexpectedArgumentError.new(command, "#{args.size} for #{cli_arguments.size}")
end
cli_arguments.zip(args).map do |argument, arg_value|
if argument.required? && (arg_value.nil? || arg_value.empty?)
raise MissingArgumentError.new(command, argument.name)
end
if arg_value.nil?
{}
else
{argument.name => arg_value}
end
end.inject {|a,b| a.merge(b) } || {}
end
|