Method: Ned::Main#create_command

Defined in:
lib/ned.rb

#create_command(command_args, inputs, output, error) ⇒ Object



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