Method: Kernel#richiedi

Defined in:
lib/italian/ruby/metodi/kernel.rb

#richiedi(archivio) ⇒ Object

Richiede un archivio da caricare in memoria. Se l’archivio è trovato nei percorsi di caricamento presenti in memoria, e scritto in ItalianRuby, allora viene tradotto e caricato. Altrimenti viene cercato e caricato come un archivio Ruby standard.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/italian/ruby/metodi/kernel.rb', line 18

def richiedi(archivio)
  archivi_in_memoria = $:.map do |cartella|
    Dir["#{cartella}/**/#{archivio}.ir"]
  end
  archivio_in_italiano_da_richiedere = archivi_in_memoria.flatten.compact.first
  return traduci_e_richiedi archivio_in_italiano_da_richiedere if archivio_in_italiano_da_richiedere != nil

  # Non è stato trovato nessun archivio in italiano corrispondente al nome
  # passato. Viene ora tentato il caricamento di un file Ruby originale con
  # lo stesso nome.
  require archivio
rescue LoadError => errore
  sorgenti_chiamanti = caller_locations.reject do |locazione|
    locazione.absolute_path.include? "lib/italian/ruby/metodi/kernel"
  end
  sorgente_chiamante  = sorgenti_chiamanti.first.absolute_path
  numero_linea_errata = sorgenti_chiamanti.first.lineno
  Italian::Ruby::Errori.recupera errore, sorgente_chiamante, numero_linea_errata
end