249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
|
# File 'lib/ned.rb', line 249
def create_command(command_args, inputs, output, error)
previous = Ned::Read.new(inputs)
command_args.each do |args|
command = Ned::CommandRegistry.find(args.shift).new(previous)
begin
command.parse(args)
raise OptionParser::InvalidArgument.new(args[0]) unless args.empty?
rescue OptionParser::ParseError => e
error.puts "fatal: error while parsing options for #{command.class.long_name}: #{e.message}"
error.puts
error.puts command.class.help
return 1
end
if command.options[:help]
output.puts command.class.help
return 0
end
if command.options[:version]
output.puts "Ned version #{Ned::VERSION}"
return 0
end
previous = command
end
[nil, previous]
end
|