Class: Catalogage::Etape::Analyse

Inherits:
Object
  • Object
show all
Defined in:
lib/images/catalogage/etape/analyse.rb

Overview

Analyse

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(extracteur, exif_manipulateur, fichiers_analyses = {}) ⇒ Analyse

Returns a new instance of Analyse.



13
14
15
16
17
18
# File 'lib/images/catalogage/etape/analyse.rb', line 13

def initialize(extracteur, exif_manipulateur, fichiers_analyses = {})
  @extracteur = extracteur
  @exif_manipulateur = exif_manipulateur
  @fichiers_analyses = fichiers_analyses
  @log = Logging.logger["Analyse"]
end

Instance Attribute Details

#fichiers_analysesObject (readonly)

Returns the value of attribute fichiers_analyses.



11
12
13
# File 'lib/images/catalogage/etape/analyse.rb', line 11

def fichiers_analyses
  @fichiers_analyses
end

Instance Method Details

#analyser(dossier) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/images/catalogage/etape/analyse.rb', line 20

def analyser(dossier)
  @log.debug "Parcours du dossier '#{dossier}'"
  Dir.each_child(dossier) do |nom_fichier|
    fichier = "#{dossier}/#{nom_fichier}"
    if File.file?(fichier)
      if File.extname(fichier) =~ RegexHelpers::EXTENSIONS_EXCLUS
        date_extraite = nil
        exif = false
        if @exif_manipulateur.datetimeoriginal?(fichier)
          date_extraite = @exif_manipulateur.get_datetimeoriginal(fichier)
          exif = true
        elsif @extracteur.extirpabilite(fichier)
          date_extraite = @extracteur.extraction_du(File.basename(fichier, File.extname(fichier)))
        else
          @log.warn "Aucune date extraire pour le fichier '#{fichier}'"
        end
        @log.debug "Le fichier '#{fichier}' à une date extraite au #{date_extraite}"
        @log.debug "La date extraite viens des metadata 'datetimeoriginal' : #{exif ? "oui" : "non"}"
        ajoute_analyse Fichier.new(fichier, File.extname(fichier), date_extraite, exif)
      else
        @log.warn "Le fichier '#{fichier}' ne sera pas analysé"
      end
    else
      analyser(fichier)
      next
    end
  end
end