<commit_before># encoding: UTF-8
module VoshodAvtoImport

  # Предварительная обработка выгрузки (распаковка архивов).
  # Запуск обработчика. Отправка отчетов.
  class Manager

    def self.run
      new.run
    end # self.run

    def initialize
    end # new

    def run

      @has_files = false

      extract_zip_files
      processing
      close_logger

      yield if @has_files && block_given?

    end # run

    def log(msg = "")

      create_logger unless @logger
      @logger.error(msg)
      msg

    end # log

    private

    def processing

      unless ::VoshodAvtoImport::import_dir && ::FileTest.directory?(::VoshodAvtoImport::import_dir)
        log "Директория #{::VoshodAvtoImport::import_dir} не существует!"
        return
      end

      files = ::Dir.glob( ::File.join(::VoshodAvtoImport::import_dir, "**", "*.xml") )
      return unless files && files.size > 0

      @has_files = true

      Catalog.rebuild! if Catalog.where(:pos.exists => true).size > 7
      # Catalog.where(:dep_code => nil, :dep_code.exists => false).update_all(:deleted => true)
      # Catalog.where(:dep_code.ne => nil, :dep_code.exists => true).update_all(:deleted => true)
      # Item.update_all(:deleted => true)
      
      start = Time.now
      # Сортируем по дате последнего доступа по-возрастанию
      files.sort{ |a, b| ::File.new(a).mtime <=> ::File.new(b).atime }.each do |xml_file|
        ::VoshodAvtoImport::Worker.new(xml_file, self).parse
      end # each
<commit_msg>Исправлен баг с подсчетом времени<commit_after># encoding: UTF-8
module VoshodAvtoImport

  # Предварительная обработка выгрузки (распаковка архивов).
  # Запуск обработчика. Отправка отчетов.
  class Manager

    def self.run
      new.run
    end # self.run

    def initialize
    end # new

    def run

      @has_files = false

      extract_zip_files
      processing
      close_logger

      yield if @has_files && block_given?

    end # run

    def log(msg = "")

      create_logger unless @logger
      @logger.error(msg)
      msg

    end # log

    private

    def processing

      unless ::VoshodAvtoImport::import_dir && ::FileTest.directory?(::VoshodAvtoImport::import_dir)
        log "Директория #{::VoshodAvtoImport::import_dir} не существует!"
        return
      end

      files = ::Dir.glob( ::File.join(::VoshodAvtoImport::import_dir, "**", "*.xml") )
      return unless files && files.size > 0

      @has_files = true

      Catalog.rebuild! if Catalog.where(:pos.exists => true).size > 7
      # Catalog.where(:dep_code => nil, :dep_code.exists => false).update_all(:deleted => true)
      # Catalog.where(:dep_code.ne => nil, :dep_code.exists => true).update_all(:deleted => true)
      # Item.update_all(:deleted => true)
      
      start = Time.now.to_f
      # Сортируем по дате последнего доступа по-возрастанию
      files.sort{ |a, b| ::File.new(a).mtime <=> ::File.new(b).atime }.each do |xml_file|
        ::VoshodAvtoImport::Worker.new(xml_file, self).parse
      end # each

{'fraction_non_alphanumeric': 0.12355084465054654, 'fraction_numerical': 0.001987413050679033, 'mean_word_length': 2.728395061728395, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 25, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 6}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4250261', 'n_tokens_mistral': 1063, 'n_tokens_neox': 1060, 'n_words': 220}