402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
|
# File 'lib/main/parameter.rb', line 402
def parse_arguments argv, params=nil
params ||= select{|p| p.type == :argument}
params.each do |p|
if p.arity >= 0
p.arity.times do
break if argv.empty?
value = argv.shift
p.add_value value
end
else
arity = p.arity.abs - 1
arity.times do
break if argv.empty?
value = argv.shift
p.add_value value
end
argv.size.times do
value = argv.shift
p.add_value value
end
end
end
end
|