Module: Italian::Ruby::Errori
- Defined in:
- lib/italian/ruby/errori.rb
Defined Under Namespace
Classes: StringaNonTerminata
Constant Summary collapse
- TRADUZIONI_NOMI_CLASSI_ERRORI =
Nomi classi errori tradotti.
Hash[ "SyntaxError" => "ErroreSintassi", "LoadError" => "ErroreCaricamento" ].freeze
Class Method Summary collapse
Class Method Details
.recupera(errore, archivio = nil, numero_linea = nil) ⇒ Object
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 |
# File 'lib/italian/ruby/errori.rb', line 21 def self.recupera(errore, archivio = nil, numero_linea = nil) archivio, numero_linea = ottieni_archivio_e_numero_linea_per_sintassi errore if errore.class.name == "SyntaxError" archivio, numero_linea = ottieni_archivio_e_numero_linea_da errore if archivio.nil? linee_sorgente = File.readlines archivio numero_linea_errata = numero_linea if numero_linea != nil numero_linea_errata = ottieni_numero_linea_da errore, archivio if numero_linea_errata.nil? linea_errata = linee_sorgente[numero_linea_errata - 1].strip linea_errata_precedente = linee_sorgente[numero_linea_errata - 2].strip if numero_linea_errata >= 2 linea_errata_successiva = linee_sorgente[numero_linea_errata].strip if numero_linea_errata < linee_sorgente.length nome_classe_errore = TRADUZIONI_NOMI_CLASSI_ERRORI.fetch errore.class.name, nil nome_classe_errore = errore.class.name if nome_classe_errore.nil? puts "-------".rosso puts "Si รจ verificato un errore: #{nome_classe_errore}.".rosso puts puts "\t [#{numero_linea_errata - 1}] #{linea_errata_precedente}".rosso if linea_errata_precedente != nil puts "\t> [#{numero_linea_errata}] #{linea_errata}".rosso puts "\t [#{numero_linea_errata + 1}] #{linea_errata_successiva}".rosso if linea_errata_successiva != nil puts puts errore..rosso puts errore.backtrace.map(&:rosso) puts "-------".rosso exit end |