class Italian::Ruby::Traduttore
Constants
- STAMPA_DETTAGLI_TRADUZIONE
Bandierina per stampare o meno i dettagli della traduzione, mentre questa viene eseguita.
Public Class Methods
esegui(percorso_archivio_tradotto)
click to toggle source
Punto d'ingresso del traduttore. Questo metodo esegue del codice Ruby
presente in un archivio. Il codice può essere stato precedentemente tradotto dal metodo `traduci` del traduttore ItalianRuby.
# File lib/italian/ruby/traduttore.rb, line 28 def self.esegui(percorso_archivio_tradotto) load percorso_archivio_tradotto rescue SyntaxError => errore Italian::Ruby::Errori.recupera errore, percorso_archivio_tradotto rescue StandardError => errore Italian::Ruby::Errori.recupera errore, percorso_archivio_tradotto end
traduci(archivio = nil, sorgente = nil, &blocco)
click to toggle source
Punto d'ingresso del traduttore. Questo metodo accetta un archivio come argomento principale, oppure un blocco di codice.
# File lib/italian/ruby/traduttore.rb, line 39 def self.traduci(archivio = nil, sorgente = nil, &blocco) return traduci_archivio archivio if archivio != nil return traduci_sorgente sorgente if sorgente != nil return traduci_blocco &blocco if block_given? end
Private Class Methods
traduci_archivio(archivio)
click to toggle source
Traduce un archivio sorgente da ItalianRuby a Ruby
. Salva la versione tradotta dell'archivio originale nel percorso delle traduzioni.
# File lib/italian/ruby/traduttore.rb, line 51 def self.traduci_archivio(archivio) puts "Traduzione archivio: #{archivio}" if STAMPA_DETTAGLI_TRADUZIONE linee_sorgente = File.readlines archivio linee_tradotte = linee_sorgente.map.with_index do |linea, numero_linea| linea_da_tradurre = Italian::Ruby::Traduttore::Linea.new linea, numero_linea, archivio linea_tradotta = linea_da_tradurre.traduci puts "\t[#{numero_linea}] <- #{linea}" if STAMPA_DETTAGLI_TRADUZIONE puts "\t[#{numero_linea}] -> #{linea_tradotta}" if STAMPA_DETTAGLI_TRADUZIONE linea_tradotta.chomp end puts "Traduzione terminata." if STAMPA_DETTAGLI_TRADUZIONE puts if STAMPA_DETTAGLI_TRADUZIONE linee_tradotte = linee_tradotte.join("\n").freeze archivio_tradotto = Italian::Ruby.percorso_archivio_tradotto archivio cartella_archivio_tradotto = File.dirname archivio_tradotto FileUtils.mkdir_p cartella_archivio_tradotto unless Dir.exist? cartella_archivio_tradotto File.write archivio_tradotto, linee_tradotte archivio_tradotto rescue SyntaxError => errore Italian::Ruby::Errori.recupera errore, archivio end
traduci_blocco(&blocco)
click to toggle source
Traduce un blocco di codice da ItalianRuby a Ruby
.
# File lib/italian/ruby/traduttore.rb, line 104 def self.traduci_blocco(&blocco) blocco.call rescue SyntaxError => errore Italian::Ruby::Errori.recupera errore rescue StandardError => errore Italian::Ruby::Errori.recupera errore end
traduci_sorgente(sorgente)
click to toggle source
Traduce un pezzo di sorgente da ItalianRuby a Ruby
.
# File lib/italian/ruby/traduttore.rb, line 81 def self.traduci_sorgente(sorgente) puts "Traduzione sorgente." if STAMPA_DETTAGLI_TRADUZIONE linee_sorgente = sorgente.split "\n" linee_tradotte = linee_sorgente.map.with_index do |linea, numero_linea| linea_da_tradurre = Italian::Ruby::Traduttore::Linea.new linea, numero_linea, nil linea_tradotta = linea_da_tradurre.traduci puts "\t[#{numero_linea}] <- #{linea}" if STAMPA_DETTAGLI_TRADUZIONE puts "\t[#{numero_linea}] -> #{linea_tradotta}" if STAMPA_DETTAGLI_TRADUZIONE linea_tradotta.chomp end puts "Traduzione terminata." if STAMPA_DETTAGLI_TRADUZIONE puts if STAMPA_DETTAGLI_TRADUZIONE sorgente_tradotto = linee_tradotte.join("\n").freeze sorgente_tradotto end