337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
|
# File 'lib/main/parameter.rb', line 337
def parse main
@main, @argv, @env = main, main.argv, main.env
ignore, stop = [], argv.index('--')
if stop
ignore = argv[stop .. -1]
(argv.size - stop).times{ argv.pop }
end
argv.push "--#{ argv.shift }" if argv.first == 'help'
parse_options argv
return 'help' if detect{|p| p.name.to_s == 'help' and p.given?}
parse_keywords argv
parse_arguments argv
parse_environment env
defaults!
validate!
argv.push(*ignore[1..-1]) unless ignore.empty?
return self
ensure
@main, @argv, @env = nil
end
|