italian-ruby 0.9.16 → 1.0.2

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.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.ruby-version +1 -1
  4. data/Gemfile.lock +2 -9
  5. data/bin/italian-rspec +9 -18
  6. data/bin/italian-ruby +7 -7
  7. data/{vim → dev/vim}/ftdetect/ir.vim +0 -0
  8. data/{vim → dev/vim}/syntax/ir.vim +0 -0
  9. data/{vim → dev/vim}/vimrc +0 -0
  10. data/{vscode → dev/vscode}/italianruby.tmGrammar.json +0 -0
  11. data/italian-ruby.gemspec +7 -6
  12. data/lib/italian/ruby.rb +39 -14
  13. data/lib/italian/ruby/alias.rb +28 -0
  14. data/lib/italian/ruby/{core_ext → alias}/array.rb +13 -80
  15. data/lib/italian/ruby/{core_ext → alias}/class.rb +9 -2
  16. data/lib/italian/ruby/{core_ext → alias}/date.rb +4 -36
  17. data/lib/italian/ruby/{core_ext → alias}/enumerator.rb +4 -5
  18. data/lib/italian/ruby/alias/error.rb +17 -0
  19. data/lib/italian/ruby/{core_ext → alias}/false_class.rb +4 -3
  20. data/lib/italian/ruby/{core_ext → alias}/file.rb +6 -9
  21. data/lib/italian/ruby/{core_ext → alias}/float.rb +3 -4
  22. data/lib/italian/ruby/{core_ext → alias}/hash.rb +5 -39
  23. data/lib/italian/ruby/{core_ext → alias}/integer.rb +2 -26
  24. data/lib/italian/ruby/alias/io.rb +7 -0
  25. data/lib/italian/ruby/alias/kernel.rb +9 -0
  26. data/lib/italian/ruby/{core_ext → alias}/main.rb +5 -23
  27. data/lib/italian/ruby/alias/module.rb +9 -0
  28. data/lib/italian/ruby/{core_ext → alias}/nil_class.rb +3 -5
  29. data/lib/italian/ruby/alias/numeric.rb +3 -0
  30. data/lib/italian/ruby/alias/object.rb +39 -0
  31. data/lib/italian/ruby/alias/open_struct.rb +3 -0
  32. data/lib/italian/ruby/{core_ext → alias}/proc.rb +4 -5
  33. data/lib/italian/ruby/{core_ext → alias}/range.rb +2 -7
  34. data/lib/italian/ruby/{core_ext → alias}/rational.rb +3 -4
  35. data/lib/italian/ruby/{core_ext/gems → alias}/rspec.rb +7 -61
  36. data/lib/italian/ruby/alias/set.rb +39 -0
  37. data/lib/italian/ruby/alias/socket.rb +48 -0
  38. data/lib/italian/ruby/{core_ext → alias}/string.rb +5 -65
  39. data/lib/italian/ruby/{core_ext → alias}/symbol.rb +4 -5
  40. data/lib/italian/ruby/alias/time.rb +26 -0
  41. data/lib/italian/ruby/{core_ext → alias}/true_class.rb +4 -3
  42. data/lib/italian/ruby/errori.rb +84 -0
  43. data/lib/italian/ruby/metodi.rb +16 -0
  44. data/lib/italian/ruby/metodi/array.rb +105 -0
  45. data/lib/italian/ruby/metodi/date.rb +46 -0
  46. data/lib/italian/ruby/metodi/hash.rb +57 -0
  47. data/lib/italian/ruby/metodi/integer.rb +45 -0
  48. data/lib/italian/ruby/metodi/json.rb +17 -0
  49. data/lib/italian/ruby/metodi/kernel.rb +86 -0
  50. data/lib/italian/ruby/metodi/main.rb +31 -0
  51. data/lib/italian/ruby/metodi/module.rb +46 -0
  52. data/lib/italian/ruby/metodi/nil_class.rb +11 -0
  53. data/lib/italian/ruby/metodi/object.rb +64 -0
  54. data/lib/italian/ruby/{core_ext → metodi}/open_struct.rb +5 -7
  55. data/lib/italian/ruby/metodi/range.rb +11 -0
  56. data/lib/italian/ruby/metodi/rspec.rb +64 -0
  57. data/lib/italian/ruby/metodi/string.rb +168 -0
  58. data/lib/italian/ruby/metodi/time.rb +51 -0
  59. data/lib/italian/ruby/traduttore.rb +93 -122
  60. data/lib/italian/ruby/traduttore/linea.rb +144 -0
  61. data/lib/italian/ruby/traduttore/pezzo.rb +106 -0
  62. data/lib/italian/ruby/traduttore/stringa.rb +76 -0
  63. data/lib/italian/ruby/{version.rb → versione.rb} +1 -1
  64. metadata +58 -43
  65. data/Rakefile +0 -6
  66. data/lib/italian/ruby/core_ext.rb +0 -32
  67. data/lib/italian/ruby/core_ext/errors.rb +0 -12
  68. data/lib/italian/ruby/core_ext/gems/bson.rb +0 -26
  69. data/lib/italian/ruby/core_ext/gems/fabrication.rb +0 -12
  70. data/lib/italian/ruby/core_ext/gems/hanami.rb +0 -92
  71. data/lib/italian/ruby/core_ext/gems/rack_test.rb +0 -15
  72. data/lib/italian/ruby/core_ext/json.rb +0 -11
  73. data/lib/italian/ruby/core_ext/kernel.rb +0 -111
  74. data/lib/italian/ruby/core_ext/module.rb +0 -32
  75. data/lib/italian/ruby/core_ext/numeric.rb +0 -6
  76. data/lib/italian/ruby/core_ext/object.rb +0 -79
  77. data/lib/italian/ruby/core_ext/time.rb +0 -69
  78. data/lib/italian/ruby/errore.rb +0 -52
  79. data/lib/italian/ruby/utils/debug.rb +0 -134
@@ -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,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class NilClass
4
+
5
+ ##
6
+ # Determina se il nullo non è tale.
7
+ def esiste?
8
+ !nil?
9
+ end
10
+
11
+ 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
- Archivio = OpenStruct
19
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Range
4
+
5
+ ##
6
+ # Determina se un intervallo non include un valore.
7
+ def non_include?(*args)
8
+ !include? *args
9
+ end
10
+
11
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+ require "rspec"
3
+ require "rspec/mocks"
4
+
5
+ module RSpec
6
+
7
+ def self.descrivi(*args, &block)
8
+ describe *args, &block
9
+ end
10
+ def self.variabili_condivise(*args, &block)
11
+ shared_context *args, &block
12
+ end
13
+ def self.contesto_condiviso(*args, &block)
14
+ shared_context *args, &block
15
+ end
16
+
17
+ module Core
18
+ class ExampleGroup
19
+ define_example_group_method :contesto
20
+
21
+ def classe_descritta
22
+ described_class
23
+ end
24
+
25
+ def risposta(*args, &block)
26
+ last_response *args, &block
27
+ end
28
+ end
29
+ end
30
+
31
+ module Expectations
32
+ class ExpectationTarget
33
+ module InstanceMethods
34
+ def che(*args, &block)
35
+ to *args, &block
36
+ end
37
+
38
+ def che_non(*args, &block)
39
+ not_to *args, &block
40
+ end
41
+ end
42
+ end
43
+ end
44
+
45
+ module Mocks
46
+ class TargetBase
47
+ def che(*args)
48
+ to *args
49
+ end
50
+ def che_non(*args)
51
+ not_to *args
52
+ end
53
+
54
+ private
55
+
56
+ def matcher_allowed?(matcher)
57
+ matcher.class.name.start_with?("RSpec::Mocks::Matchers".freeze) or
58
+ matcher.class.name.start_with?("RSpec::Matchers::AliasedMatcher".freeze)
59
+ end
60
+
61
+ end
62
+
63
+ end
64
+ end