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: index.rb
    path of file: ./repos/souls/lib/souls/cli/init
    
    the code of the file until where you have to start completion: module SOULs
  class CLI < Thor
    def initialize(*_args)
      super
      @bucket_url = "https://storage.googleapis.com/souls-bucket/boilerplates/#{SOULs::VERSION}"
    end

    desc "new [APP_NAME]", "Create SOULs APP"
    def new(app_name)
      if app_name.nil?
        puts(Paint["you need to specify your app name", :red])
        puts(Paint["`souls new souls-app`", :yellow])
        exit
      end
      file_dir = "./#{app_name}"
      if Dir.exist?(file_dir) && !Dir.empty?(file_dir)
        SOULs::Painter.error("Directory already exists and is not empty")
        return
      end

      service_name = "api"
      download_souls(app_name:, service_name:)
      mother_config_init(app_name:)
      download_github_actions(app_name:)
      initial_config_init(app_name:, service_name:)
      system("cd #{app_name}/apps/api && mv .env.sample .env")
     
    
    def get_latest_gem(app_name)
      file_path = "./#{app_name}/Gemfile"
      souls_gem = "gem \"souls\", \"#{SOULs::VERSION}\""
      souls_gem = "gem \"souls\", \"#{SOULs::VERSION}\", path: \"~/.local_souls/\"" if SOULs::VERSION.length > 20
      File.open(file_path, "w") do |f|
        f.write(<<~TEXT)
          source "https://rubygems.org"

          gem "activesupport", "7.0.2.3"
          gem "foreman", "0.87.2"
          gem "google-cloud-pubsub", "2.9.1"
          gem "paint", "2.2.1"
          gem "parser", "3.1.1.0"
          gem "pg", "1.3.2"
          gem "rake", "13.0.6"
          gem "rspec", "3.10.0"
          gem "rubocop", "1.26.0"
          gem "sinatra-activerecord", "2.0.25"
          gem "solargraph", "0.44.3"
          #{souls_gem}
          gem "thor", "1.2.1"
          gem "tty-prompt", "0.23.1"
          gem "whirly", "0.3.0"
        TEXT
      end
    rescue StandardError => e
      puts(e)
    end