Class: Restauration::Etape::Analyse
- Inherits:
-
Object
- Object
- Restauration::Etape::Analyse
- Defined in:
- lib/images/restauration/etape/analyse.rb
Overview
Definit l’étape d’analyse
Instance Attribute Summary collapse
-
#dossiers_analyses ⇒ Object
readonly
Returns the value of attribute dossiers_analyses.
-
#nombre_fichiers_analyses ⇒ Object
readonly
Returns the value of attribute nombre_fichiers_analyses.
Instance Method Summary collapse
- #calcul_taux_d_extirpabilite_par(nom_dossier) ⇒ Object
- #extirpabilite_par(path_dossier, nom_fichier) ⇒ Object
-
#initialize(extracteur, noms_extirpable_par_dossier = {}, dossiers_analyses = {}) ⇒ Analyse
constructor
A new instance of Analyse.
- #parcours(dossier) ⇒ Object
Constructor Details
#initialize(extracteur, noms_extirpable_par_dossier = {}, dossiers_analyses = {}) ⇒ Analyse
Returns a new instance of Analyse.
14 15 16 17 18 19 20 |
# File 'lib/images/restauration/etape/analyse.rb', line 14 def initialize(extracteur, noms_extirpable_par_dossier = {}, dossiers_analyses = {}) @extracteur = extracteur @noms_extirpable_par_dossier = noms_extirpable_par_dossier @dossiers_analyses = dossiers_analyses @log = Logging.logger[self] @nombre_fichiers_analyses = 0 end |
Instance Attribute Details
#dossiers_analyses ⇒ Object (readonly)
Returns the value of attribute dossiers_analyses.
12 13 14 |
# File 'lib/images/restauration/etape/analyse.rb', line 12 def dossiers_analyses @dossiers_analyses end |
#nombre_fichiers_analyses ⇒ Object (readonly)
Returns the value of attribute nombre_fichiers_analyses.
12 13 14 |
# File 'lib/images/restauration/etape/analyse.rb', line 12 def nombre_fichiers_analyses @nombre_fichiers_analyses end |
Instance Method Details
#calcul_taux_d_extirpabilite_par(nom_dossier) ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/images/restauration/etape/analyse.rb', line 45 def calcul_taux_d_extirpabilite_par(nom_dossier) noms_extirpable = @noms_extirpable_par_dossier.fetch(nom_dossier) noms_extirpable_possible = @noms_extirpable_par_dossier.fetch(nom_dossier).tally if noms_extirpable_possible.key?(true) ((noms_extirpable_possible[true] * 100) / noms_extirpable.length) else 0 end end |
#extirpabilite_par(path_dossier, nom_fichier) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/images/restauration/etape/analyse.rb', line 55 def extirpabilite_par(path_dossier, nom_fichier) extirpable = @extracteur.extirpabilite(nom_fichier) nom_extirpable_par_dossier = if @noms_extirpable_par_dossier.key?(path_dossier) @noms_extirpable_par_dossier.merge!({ path_dossier => @noms_extirpable_par_dossier .fetch(path_dossier) .push(extirpable) }) else @noms_extirpable_par_dossier.merge!({ path_dossier => [].push(extirpable) }) end @log.debug "Le fichier '#{nom_fichier}' est extirpable : #{extirpable}" nom_extirpable_par_dossier end |
#parcours(dossier) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/images/restauration/etape/analyse.rb', line 22 def parcours(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 extirpabilite_par(dossier, fichier) @nombre_fichiers_analyses += 1 else @log.warn "Le fichier '#{fichier}' ne sera pas analysé" end else parcours(fichier) next end end if @noms_extirpable_par_dossier.key?(dossier) taux = calcul_taux_d_extirpabilite_par(dossier) @dossiers_analyses.store(dossier, taux) @log.info "Le dossier '#{dossier}' posséde un taux de #{taux}% d'extirpabilité" end end |