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: options.rb
    path of file: ./repos/gitlabhq/lib/backup
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

module Backup
  # Backup options provided by the command line interface
  class Options
    # SkippableTasks store which tasks can be skipped
    # Setting any one to true, will create or restore a backup without that data
    # @example Skipping database content and CI job artifacts
    #    SkippableTasks.new(db: true, artifacts: true)
    SkippableTasks = Struct.new(
      :db, # Database content (PostgreSQL)
      :uploads, # Attachments
      :builds, # CI job output logs
      :artifacts, # CI job artifacts
      :lfs, # LFS objects
      :terraform_state, # Terraform states
      :registry, # Container registry images
      :pages, # GitLab Pages content
  
    
    def extract_from_env!
      # We've used lowercase `force` as the key while ENV normally is defined using UPPERCASE letters
      # This provides a fallback when the user defines using expected standards, while not breaking compatibility
      force_value = ENV.key?('FORCE') ? ENV['FORCE'] : ENV['force']

      self.backup_id = ENV['BACKUP']
      self.previous_backup = ENV['PREVIOUS_BACKUP']
      self.incremental = Gitlab::Utils.to_boolean(ENV['INCREMENTAL'], default: incremental)
      self.force = Gitlab::Utils.to_boolean(force_value, default: force)
      self.strategy = Strategy::COPY if ENV['STRATEGY'] == 'copy'
      self.max_parallelism = ENV['GITLAB_BACKUP_MAX_CONCURRENCY']&.to_i
      self.max_storage_parallelism = ENV['GITLAB_BACKUP_MAX_STORAGE_CONCURRENCY']&.to_i
      self.remote_directory = ENV['DIRECTORY']
      self.repositories_server_side_backup = Gitlab::Utils.to_boolean(ENV['REPOSITORIES_SERVER_SIDE'],
        default: repositories_server_side_backup)
      self.repositories_storages = ENV.fetch('REPOSITORIES_STORAGES', '').split(',').uniq
      self.repositories_paths = ENV.fetch('REPOSITORIES_PATHS', '').split(',').uniq
      self.skip_repositories_paths = ENV.fetch('SKIP_REPOSITORIES_PATHS', '').split(',').uniq
      compression_options.compression_cmd = ENV['COMPRESS_CMD']
      compression_options.decompression_cmd = ENV['DECOMPRESS_CMD']
      self.gzip_rsyncable = Gitlab::Utils.to_boolean(ENV['GZIP_RSYNCABLE'], default: gzip_rsyncable)

      extract_skippables!(ENV['SKIP']) if ENV['SKIP'].present?
    end