You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: files.rb
    path of file: ./repos/hexapdf/lib/hexapdf/cli
    
    the code of the file until where you have to start completion: # -*- encoding: utf-8; frozen_string_literal: true -*-
#
#--
# This file is part of HexaPDF.
#
# HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
# Copyright (C) 2014-2024 Thomas Leitner
#
# HexaPDF is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License version 3 as
# published by the Fr
    
      def initialize #:nodoc:
        super('files', takes_commands: false)
        short_desc("List or extract embedded files from a PDF file")
        long_desc(<<~EOF)
          If the option --extract is not given, the available files are listed with their names and
          indices. The --extract option can then be used to extract one or more files.
        EOF

        options.on("--extract [a,b,c,...]", "-e [a,b,c,...]", Array,
                   "The indices of the files that should be extracted. Use 0 or no argument to " \
                   "extract all files.") do |indices|
          @indices = (indices ? indices.map(&:to_i) : [0])
        end
        options.on("--[no-]search", "-s", "Search the whole PDF instead of the " \
                   "standard locations (default: false)") do |search|
          @search = search
        end
        options.on("--password PASSWORD", "-p", String,
                   "The password for decryption. Use - for reading from standard input.") do |pwd|
          @password = (pwd == '-' ? read_password : pwd)
        end

        @indices = []
        @password = nil
        @search = false
      end