down. translated.
      
         
        
          @spec.get_opts.each do |name, opt|
            options[name] = opt.value
            counts[name]  = opt.count
          end
          @spec.get_args.each do |name, arg|
            args << arg.value
            named[name] = arg.value
          end
          args.flatten!
          args += trailing
          @report = Report.new(args, named, trailing, options, counts)
          if @report.opt(:help)
            self.print_usage()
          end
          unless @spec.get_args.values.all? {|arg| arg.fulfilled? }
            raise InterfaceError, "Required argument '#{name.upcase}' was not given."
          end
          if @spec.trailing_error && !@report.trailing.empty?
            raise InterfaceError, "Error: got trailing argument(s): #{trailing.join