italian-ruby 0.9.17 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.ruby-version +1 -1
- data/Gemfile.lock +2 -9
- data/bin/italian-rspec +9 -18
- data/bin/italian-ruby +7 -7
- data/{vim → dev/vim}/ftdetect/ir.vim +0 -0
- data/{vim → dev/vim}/syntax/ir.vim +0 -0
- data/{vim → dev/vim}/vimrc +0 -0
- data/{vscode → dev/vscode}/italianruby.tmGrammar.json +0 -0
- data/italian-ruby.gemspec +7 -6
- data/lib/italian/ruby.rb +39 -14
- data/lib/italian/ruby/alias.rb +29 -0
- data/lib/italian/ruby/{core_ext → alias}/array.rb +11 -80
- data/lib/italian/ruby/{core_ext → alias}/class.rb +9 -2
- data/lib/italian/ruby/{core_ext → alias}/date.rb +4 -36
- data/lib/italian/ruby/{core_ext → alias}/enumerator.rb +4 -5
- data/lib/italian/ruby/alias/error.rb +19 -0
- data/lib/italian/ruby/{core_ext → alias}/false_class.rb +4 -3
- data/lib/italian/ruby/{core_ext → alias}/file.rb +6 -9
- data/lib/italian/ruby/{core_ext → alias}/float.rb +3 -4
- data/lib/italian/ruby/{core_ext → alias}/hash.rb +5 -39
- data/lib/italian/ruby/{core_ext → alias}/integer.rb +2 -26
- data/lib/italian/ruby/alias/io.rb +7 -0
- data/lib/italian/ruby/alias/kernel.rb +9 -0
- data/lib/italian/ruby/{core_ext → alias}/main.rb +5 -23
- data/lib/italian/ruby/alias/module.rb +9 -0
- data/lib/italian/ruby/{core_ext → alias}/nil_class.rb +3 -5
- data/lib/italian/ruby/alias/numeric.rb +3 -0
- data/lib/italian/ruby/alias/object.rb +39 -0
- data/lib/italian/ruby/alias/open_struct.rb +3 -0
- data/lib/italian/ruby/{core_ext → alias}/proc.rb +4 -5
- data/lib/italian/ruby/{core_ext → alias}/range.rb +2 -7
- data/lib/italian/ruby/{core_ext → alias}/rational.rb +3 -4
- data/lib/italian/ruby/alias/regexp.rb +13 -0
- data/lib/italian/ruby/{core_ext/gems → alias}/rspec.rb +7 -61
- data/lib/italian/ruby/alias/set.rb +39 -0
- data/lib/italian/ruby/alias/socket.rb +48 -0
- data/lib/italian/ruby/{core_ext → alias}/string.rb +5 -69
- data/lib/italian/ruby/{core_ext → alias}/symbol.rb +4 -5
- data/lib/italian/ruby/alias/time.rb +26 -0
- data/lib/italian/ruby/{core_ext → alias}/true_class.rb +4 -3
- data/lib/italian/ruby/errori.rb +84 -0
- data/lib/italian/ruby/metodi.rb +17 -0
- data/lib/italian/ruby/metodi/array.rb +105 -0
- data/lib/italian/ruby/metodi/date.rb +46 -0
- data/lib/italian/ruby/metodi/hash.rb +57 -0
- data/lib/italian/ruby/metodi/integer.rb +45 -0
- data/lib/italian/ruby/metodi/json.rb +17 -0
- data/lib/italian/ruby/metodi/kernel.rb +86 -0
- data/lib/italian/ruby/metodi/main.rb +31 -0
- data/lib/italian/ruby/metodi/module.rb +46 -0
- data/lib/italian/ruby/metodi/nil_class.rb +11 -0
- data/lib/italian/ruby/metodi/object.rb +64 -0
- data/lib/italian/ruby/{core_ext → metodi}/open_struct.rb +5 -7
- data/lib/italian/ruby/metodi/range.rb +11 -0
- data/lib/italian/ruby/metodi/rspec.rb +64 -0
- data/lib/italian/ruby/metodi/socket.rb +18 -0
- data/lib/italian/ruby/metodi/string.rb +168 -0
- data/lib/italian/ruby/metodi/time.rb +51 -0
- data/lib/italian/ruby/traduttore.rb +93 -122
- data/lib/italian/ruby/traduttore/linea.rb +144 -0
- data/lib/italian/ruby/traduttore/pezzo.rb +106 -0
- data/lib/italian/ruby/traduttore/stringa.rb +76 -0
- data/lib/italian/ruby/{version.rb → versione.rb} +1 -1
- metadata +60 -43
- data/Rakefile +0 -6
- data/lib/italian/ruby/core_ext.rb +0 -32
- data/lib/italian/ruby/core_ext/errors.rb +0 -12
- data/lib/italian/ruby/core_ext/gems/bson.rb +0 -26
- data/lib/italian/ruby/core_ext/gems/fabrication.rb +0 -12
- data/lib/italian/ruby/core_ext/gems/hanami.rb +0 -92
- data/lib/italian/ruby/core_ext/gems/rack_test.rb +0 -15
- data/lib/italian/ruby/core_ext/json.rb +0 -11
- data/lib/italian/ruby/core_ext/kernel.rb +0 -111
- data/lib/italian/ruby/core_ext/module.rb +0 -32
- data/lib/italian/ruby/core_ext/numeric.rb +0 -6
- data/lib/italian/ruby/core_ext/object.rb +0 -83
- data/lib/italian/ruby/core_ext/time.rb +0 -69
- data/lib/italian/ruby/errore.rb +0 -52
- data/lib/italian/ruby/utils/debug.rb +0 -134
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "date"
|
3
|
+
|
4
|
+
class Date
|
5
|
+
class << self
|
6
|
+
|
7
|
+
##
|
8
|
+
# Restituisce la data di domani.
|
9
|
+
def domani
|
10
|
+
oggi + 1
|
11
|
+
end
|
12
|
+
|
13
|
+
##
|
14
|
+
# Restituisce la data di ieri.
|
15
|
+
def ieri
|
16
|
+
oggi - 1
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
##
|
22
|
+
# Restituisce la data di oggi a due anni fa.
|
23
|
+
def due_anni_fa
|
24
|
+
self.prev_year.prev_year
|
25
|
+
end
|
26
|
+
|
27
|
+
##
|
28
|
+
# Formatta la data secondo la rappresentazione passata.
|
29
|
+
def formatta_locale(format)
|
30
|
+
formattazione = strftime format
|
31
|
+
formattazione
|
32
|
+
.gsub(/January/i, "Gennaio")
|
33
|
+
.gsub(/February/i, "Febbraio")
|
34
|
+
.gsub(/March/i, "Marzo")
|
35
|
+
.gsub(/April/i, "Aprile")
|
36
|
+
.gsub(/May/i, "Maggio")
|
37
|
+
.gsub(/June/i, "Giugno")
|
38
|
+
.gsub(/July/i, "Luglio")
|
39
|
+
.gsub(/August/i, "Agosto")
|
40
|
+
.gsub(/September/i, "Settembre")
|
41
|
+
.gsub(/October/i, "Ottobre")
|
42
|
+
.gsub(/November/i, "Novembre")
|
43
|
+
.gsub(/December/i, "Dicembre")
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Hash
|
4
|
+
|
5
|
+
##
|
6
|
+
# Determina se una mappa non è nulla e non è vuota.
|
7
|
+
def esiste?
|
8
|
+
!nil? && !empty?
|
9
|
+
end
|
10
|
+
|
11
|
+
##
|
12
|
+
# Determina se una mappa è nulla o è vuota.
|
13
|
+
def non_esiste?
|
14
|
+
!esiste?
|
15
|
+
end
|
16
|
+
|
17
|
+
##
|
18
|
+
# Determina se una mappa non ha una data chiave.
|
19
|
+
def non_ha_chiave?(key)
|
20
|
+
!has_key? key
|
21
|
+
end
|
22
|
+
|
23
|
+
##
|
24
|
+
# Restituisce la mappa con le chiavi convertite in simbolo.
|
25
|
+
# Viene sostituita la mappa esistente.
|
26
|
+
def simbolizza!
|
27
|
+
keys.each do |key|
|
28
|
+
value = delete key
|
29
|
+
value.simbolizza! if value.is_a? Hash or value.is_a? Array
|
30
|
+
self[key.to_sym] = value
|
31
|
+
end
|
32
|
+
self
|
33
|
+
end
|
34
|
+
|
35
|
+
##
|
36
|
+
# Restituisce la mappa con le chiavi convertite in simbolo.
|
37
|
+
# Viene creata una nuova mappa.
|
38
|
+
def simbolizza
|
39
|
+
copy = Hash.new
|
40
|
+
self.each do |key, value|
|
41
|
+
if value.is_a? Hash or value.is_a? Array
|
42
|
+
copy[key.to_sym] = value.simbolizza
|
43
|
+
else
|
44
|
+
copy[key.to_sym] = value
|
45
|
+
end
|
46
|
+
end
|
47
|
+
copy
|
48
|
+
end
|
49
|
+
|
50
|
+
##
|
51
|
+
# Espone le chiavi passate in una nuova mappa.
|
52
|
+
def esponi(*keys)
|
53
|
+
return self if keys.none?
|
54
|
+
self.select { |key, value| key.in? keys }
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Integer
|
4
|
+
|
5
|
+
##
|
6
|
+
# Restituisce l'ammontare di secondi corrispondenti
|
7
|
+
# al numero passato.
|
8
|
+
def secondi
|
9
|
+
self
|
10
|
+
end
|
11
|
+
|
12
|
+
##
|
13
|
+
# Restituisce l'ammontare di minuti corrispondenti
|
14
|
+
# al numero passato.
|
15
|
+
def minuti
|
16
|
+
self.secondi * 60
|
17
|
+
end
|
18
|
+
|
19
|
+
##
|
20
|
+
# Restituisce l'ammontare di ore corrispondenti
|
21
|
+
# al numero passato.
|
22
|
+
def ore
|
23
|
+
self.minuti * 60
|
24
|
+
end
|
25
|
+
|
26
|
+
##
|
27
|
+
# Restituisce l'ammontare di giorni corrispondenti
|
28
|
+
# al numero passato.
|
29
|
+
def giorni
|
30
|
+
self.ore * 24
|
31
|
+
end
|
32
|
+
|
33
|
+
##
|
34
|
+
# Sottrae il numero di secondi dal tempo attuale.
|
35
|
+
def fa
|
36
|
+
Time.now - self
|
37
|
+
end
|
38
|
+
|
39
|
+
##
|
40
|
+
# Aggiunge il numero di secondi dal tempo attuale.
|
41
|
+
def da_ora
|
42
|
+
Time.now + self
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module JSON
|
4
|
+
|
5
|
+
##
|
6
|
+
# Processa la stringa come JSON.
|
7
|
+
def self.processa(*args)
|
8
|
+
self.parse(*args)
|
9
|
+
end
|
10
|
+
|
11
|
+
##
|
12
|
+
# Converte l'oggetto in una stringa JSON.
|
13
|
+
def self.in_stringa(*args)
|
14
|
+
self.dump(*args)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative "../errori"
|
3
|
+
|
4
|
+
##
|
5
|
+
# Aggiunge i metodi :richiedi e :richiedi_relativo, che permettono di caricare
|
6
|
+
# un file sorgente scritto in Italian Ruby e usarlo allo stesso modo di come
|
7
|
+
# funzionano :require e :require_relative di Ruby standard.
|
8
|
+
#
|
9
|
+
# È possibile utilizzare :richiedi e :richiedi_relativo sia in file sorgenti
|
10
|
+
# scritti in Italian Ruby che in file sorgenti scritti in Ruby standard.
|
11
|
+
module Kernel
|
12
|
+
|
13
|
+
##
|
14
|
+
# Richiede un archivio da caricare in memoria.
|
15
|
+
# Se l'archivio è trovato nei percorsi di caricamento presenti in memoria,
|
16
|
+
# e scritto in ItalianRuby, allora viene tradotto e caricato.
|
17
|
+
# Altrimenti viene cercato e caricato come un archivio Ruby standard.
|
18
|
+
def richiedi(archivio)
|
19
|
+
archivi_in_memoria = $:.map do |cartella|
|
20
|
+
Dir["#{cartella}/**/#{archivio}.ir"]
|
21
|
+
end
|
22
|
+
archivio_in_italiano_da_richiedere = archivi_in_memoria.flatten.compact.first
|
23
|
+
return traduci_e_carica archivio_in_italiano_da_richiedere if archivio_in_italiano_da_richiedere != nil
|
24
|
+
|
25
|
+
# Non è stato trovato nessun archivio in italiano corrispondente al nome
|
26
|
+
# passato. Viene ora tentato il caricamento di un file Ruby originale con
|
27
|
+
# lo stesso nome.
|
28
|
+
require archivio
|
29
|
+
rescue LoadError => errore
|
30
|
+
sorgenti_chiamanti = caller_locations.reject do |locazione|
|
31
|
+
locazione.absolute_path.include? "lib/italian/ruby/metodi/kernel"
|
32
|
+
end
|
33
|
+
sorgente_chiamante = sorgenti_chiamanti.first.absolute_path
|
34
|
+
numero_linea_errata = sorgenti_chiamanti.first.lineno
|
35
|
+
Italian::Ruby::Errori.recupera errore, sorgente_chiamante, numero_linea_errata
|
36
|
+
end
|
37
|
+
|
38
|
+
##
|
39
|
+
# Richiede un archivio cercandolo come percorso relativo.
|
40
|
+
def richiedi_relativo(percorso_archivio)
|
41
|
+
sorgente_chiamante = Italian::Ruby.percorso_archivio_non_tradotto caller_locations.first.absolute_path
|
42
|
+
linea_chiamante = caller_locations.first.lineno
|
43
|
+
cartella_chiamante = File.dirname sorgente_chiamante
|
44
|
+
archivio_da_richiedere = File.expand_path File.join(cartella_chiamante, percorso_archivio)
|
45
|
+
archivio_da_richiedere = Dir["#{archivio_da_richiedere}.{ir,rb}"].compact.first
|
46
|
+
|
47
|
+
raise LoadError, "cannot load such file -- #{percorso_archivio}" if archivio_da_richiedere.nil?
|
48
|
+
traduci_e_richiedi archivio_da_richiedere
|
49
|
+
rescue LoadError => errore
|
50
|
+
Italian::Ruby::Errori.recupera errore, sorgente_chiamante, linea_chiamante
|
51
|
+
end
|
52
|
+
|
53
|
+
##
|
54
|
+
# Richiede tutti gli archivi di una cartella.
|
55
|
+
def richiedi_tutti(percorso_cartella)
|
56
|
+
sorgente_chiamante = Italian::Ruby.percorso_archivio_non_tradotto caller_locations.first.absolute_path
|
57
|
+
linea_chiamante = caller_locations.first.lineno
|
58
|
+
cartella_chiamante = File.dirname sorgente_chiamante
|
59
|
+
cartella_da_richiedere = File.expand_path File.join(cartella_chiamante, percorso_cartella)
|
60
|
+
cartella_da_richiedere = nil unless Dir.exist? cartella_da_richiedere
|
61
|
+
|
62
|
+
raise LoadError, "cannot load such directory -- #{percorso_cartella}" if cartella_da_richiedere.nil?
|
63
|
+
Dir["#{cartella_da_richiedere}/**/*.ir"].sort_by { |file| file.count("/") }.each do |archivio|
|
64
|
+
traduci_e_richiedi archivio
|
65
|
+
end
|
66
|
+
rescue LoadError => errore
|
67
|
+
Italian::Ruby::Errori.recupera errore, sorgente_chiamante, linea_chiamante
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
##
|
73
|
+
# Traduce un file da ItalianRuby a Ruby e lo carica in memoria.
|
74
|
+
def traduci_e_carica(archivio)
|
75
|
+
archivio_tradotto = Italian::Ruby::Traduttore.traduci archivio
|
76
|
+
load archivio_tradotto
|
77
|
+
end
|
78
|
+
|
79
|
+
##
|
80
|
+
# Traduce un file da ItalianRuby a Ruby e lo richiede.
|
81
|
+
def traduci_e_richiedi(archivio)
|
82
|
+
archivio_tradotto = Italian::Ruby::Traduttore.traduci archivio
|
83
|
+
require archivio_tradotto
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
##
|
4
|
+
# Include un modulo.
|
5
|
+
def includi(*args)
|
6
|
+
include *args
|
7
|
+
end
|
8
|
+
|
9
|
+
##
|
10
|
+
# Prepone un modulo.
|
11
|
+
def preponi(*args)
|
12
|
+
prepend *args
|
13
|
+
end
|
14
|
+
|
15
|
+
##
|
16
|
+
# Estende con un modulo.
|
17
|
+
def estendi(*args)
|
18
|
+
extend *args
|
19
|
+
end
|
20
|
+
|
21
|
+
##
|
22
|
+
# Solleva un errore.
|
23
|
+
def alza(*args)
|
24
|
+
raise *args
|
25
|
+
end
|
26
|
+
|
27
|
+
##
|
28
|
+
# Termina il programma.
|
29
|
+
def fallisci(*args)
|
30
|
+
fail *args
|
31
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Module
|
4
|
+
|
5
|
+
private
|
6
|
+
|
7
|
+
##
|
8
|
+
# Metodo delegato per la chiamata di ritorno da
|
9
|
+
# avviare quando il modulo viene incluso.
|
10
|
+
def quando_incluso(*args)
|
11
|
+
end
|
12
|
+
|
13
|
+
##
|
14
|
+
# Metodo delegato per la chiamata di ritorno da
|
15
|
+
# avviare quando il modulo viene esteso.
|
16
|
+
def quando_esteso(*args)
|
17
|
+
end
|
18
|
+
|
19
|
+
##
|
20
|
+
# Metodo delegato per la chiamata di ritorno da
|
21
|
+
# avviare quando il modulo viene preposto.
|
22
|
+
def quando_preposto(*args)
|
23
|
+
end
|
24
|
+
|
25
|
+
##
|
26
|
+
# Sovrascrive il metodo originale in modo che chiami
|
27
|
+
# il metodo delegato.
|
28
|
+
def included(*args)
|
29
|
+
quando_incluso *args
|
30
|
+
end
|
31
|
+
|
32
|
+
##
|
33
|
+
# Sovrascrive il metodo originale in modo che chiami
|
34
|
+
# il metodo delegato.
|
35
|
+
def extended(*args)
|
36
|
+
quando_esteso *args
|
37
|
+
end
|
38
|
+
|
39
|
+
##
|
40
|
+
# Sovrascrive il metodo originale in modo che chiami
|
41
|
+
# il metodo delegato.
|
42
|
+
def prepended(*args)
|
43
|
+
quando_preposto *args
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Object
|
4
|
+
|
5
|
+
##
|
6
|
+
# Assegna il valore chiamando il metodo passato come
|
7
|
+
# un metodo di assegnamento.
|
8
|
+
def assegna(method, value)
|
9
|
+
self.send "#{method}=", value
|
10
|
+
end
|
11
|
+
|
12
|
+
##
|
13
|
+
# Determina se l'oggetto non è nullo.
|
14
|
+
def esiste?
|
15
|
+
!nil?
|
16
|
+
end
|
17
|
+
|
18
|
+
##
|
19
|
+
# Determina se l'oggetto è nullo.
|
20
|
+
def non_esiste?
|
21
|
+
!esiste?
|
22
|
+
end
|
23
|
+
|
24
|
+
##
|
25
|
+
# Determina se l'oggetto non è istanza di una data classe.
|
26
|
+
def non_è_un?(arg)
|
27
|
+
!is_a? arg
|
28
|
+
end
|
29
|
+
|
30
|
+
##
|
31
|
+
# Determina se l'oggetto non risponde a un dato metodo.
|
32
|
+
def non_risponde_a?(method)
|
33
|
+
!respond_to? method
|
34
|
+
end
|
35
|
+
|
36
|
+
##
|
37
|
+
# Determina se l'oggetto è incluso in una lista.
|
38
|
+
def in?(array)
|
39
|
+
raise ArgumentError.new("Argument passed to `in?` must respond to `include?`") unless
|
40
|
+
array.respond_to? :include?
|
41
|
+
array.include? self
|
42
|
+
end
|
43
|
+
|
44
|
+
##
|
45
|
+
# Determina se l'oggetto non è incluso in una lista.
|
46
|
+
def non_in?(array)
|
47
|
+
!in? array
|
48
|
+
end
|
49
|
+
|
50
|
+
##
|
51
|
+
# Converte l'oggetto in JSON.
|
52
|
+
def in_json
|
53
|
+
to_json
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
##
|
59
|
+
# Metodo per riferire l'oggetto stesso.
|
60
|
+
def istanza
|
61
|
+
self
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
@@ -1,11 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require "ostruct"
|
2
3
|
|
3
|
-
##
|
4
|
-
# Core Ext - OpenStruct
|
5
|
-
#
|
6
|
-
# Alias di metodi della classe OpenStruct.
|
7
|
-
|
8
4
|
class OpenStruct
|
5
|
+
|
6
|
+
##
|
7
|
+
# Converte la mappa aperta in una mappa normale.
|
9
8
|
def in_mappa(*args)
|
10
9
|
hash = to_h *args
|
11
10
|
hash.in_mappa do |key, value|
|
@@ -16,6 +15,5 @@ class OpenStruct
|
|
16
15
|
end
|
17
16
|
end
|
18
17
|
end
|
19
|
-
end
|
20
18
|
|
21
|
-
|
19
|
+
end
|