italian-ruby 0.7.1 → 0.7.6
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/lib/italian/ruby/core_ext.rb +2 -0
- data/lib/italian/ruby/core_ext/false_class.rb +6 -0
- data/lib/italian/ruby/core_ext/gems/bson.rb +4 -0
- data/lib/italian/ruby/core_ext/hash.rb +0 -1
- data/lib/italian/ruby/core_ext/kernel.rb +12 -5
- data/lib/italian/ruby/core_ext/object.rb +6 -0
- data/lib/italian/ruby/core_ext/true_class.rb +6 -0
- data/lib/italian/ruby/errore.rb +52 -0
- data/lib/italian/ruby/traduttore.rb +17 -37
- data/lib/italian/ruby/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f9f337af713756fe0e4fc8d5252c61731707790f7d576239ada5951cd3c81e5
|
4
|
+
data.tar.gz: 84ea8882d1e7879a624a09cf7b09f5409963b6d7df668399ef92d561673ce6bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee2feba466bce2fa172bc68a3f1f4ac6c6bf0baba206bbfc3c8dd9182a59dcdc810d0e75950eff5a8c123aaa9ef84b630d17d536f815c54d3e3b73e220a68308
|
7
|
+
data.tar.gz: 2bb66391e18d76ab573d6f25013ea904fdd926cedc647ff8df962a3b1e18597dd9aff0f214921e606a49c21723f8d8212693d0415e7b9b1b4b5dd693f0c78d45
|
@@ -11,6 +11,8 @@ require_relative "core_ext/kernel"
|
|
11
11
|
require_relative "core_ext/proc"
|
12
12
|
require_relative "core_ext/errors"
|
13
13
|
require_relative "core_ext/nil_class"
|
14
|
+
require_relative "core_ext/false_class"
|
15
|
+
require_relative "core_ext/true_class"
|
14
16
|
require_relative "core_ext/json"
|
15
17
|
require_relative "core_ext/object"
|
16
18
|
require_relative "core_ext/array"
|
@@ -17,7 +17,12 @@ module Kernel
|
|
17
17
|
file_to_require = $:.map { |dir| Dir["#{dir}/**/#{name}.ir"] }.flatten.compact.first
|
18
18
|
|
19
19
|
if file_to_require.nil?
|
20
|
-
|
20
|
+
begin
|
21
|
+
require name
|
22
|
+
rescue SyntaxError => errore
|
23
|
+
riga = errore.message.split("\n").first.split(":")[1].to_i rescue 0
|
24
|
+
Italian::Ruby::Errore::Sintassi.new("Errore di sintassi.", name, riga, 0).stampa
|
25
|
+
end
|
21
26
|
else
|
22
27
|
traduci_e_carica file_to_require
|
23
28
|
end
|
@@ -72,10 +77,12 @@ module Kernel
|
|
72
77
|
end
|
73
78
|
|
74
79
|
File.write parsed_file, parsed_code
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
80
|
+
begin
|
81
|
+
require parsed_file
|
82
|
+
rescue SyntaxError => errore
|
83
|
+
riga = errore.message.split("\n").first.split(":")[1].to_i rescue 0
|
84
|
+
Italian::Ruby::Errore::Sintassi.new("Errore di sintassi.", parsed_file, riga, 0).stampa
|
85
|
+
end
|
79
86
|
end
|
80
87
|
|
81
88
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require_relative "utils/debug"
|
2
|
+
|
3
|
+
module Italian
|
4
|
+
module Ruby
|
5
|
+
class Errore < StandardError
|
6
|
+
class Sintassi < Errore; end
|
7
|
+
class NonSupportato < Errore; end
|
8
|
+
class IndividuazioneStringa < Errore; end
|
9
|
+
|
10
|
+
def initialize(messaggio = nil, file = nil, riga = 0, posizione = 0)
|
11
|
+
@messaggio = messaggio
|
12
|
+
@file = file
|
13
|
+
@riga = riga
|
14
|
+
@posizione = posizione
|
15
|
+
begin
|
16
|
+
@linea = File.readlines(@file)[@riga - 1]
|
17
|
+
rescue StandardError => e
|
18
|
+
@linea = "Non è stato possibile recuperare la riga #{@riga} del file."
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def stampa
|
23
|
+
prova_ad_ottenere_maggiori_informazioni
|
24
|
+
puts "-----------------------------------------------------------------------------".alzavola
|
25
|
+
puts "Si è verificato un errore durante la traduzione del file `#{@file}`."
|
26
|
+
print "L'errore è: "
|
27
|
+
puts "#{self.class}.".rosso
|
28
|
+
puts @messaggio
|
29
|
+
puts
|
30
|
+
print "Riga: "
|
31
|
+
puts "#{@riga}".ciano
|
32
|
+
puts @linea
|
33
|
+
puts "^".rjust(@posizione + 1, " ").verde_lime
|
34
|
+
puts
|
35
|
+
puts "-----------------------------------------------------------------------------".alzavola
|
36
|
+
exit 1
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
##
|
42
|
+
# Prova a recuperare maggiori informazioni su errore.
|
43
|
+
def prova_ad_ottenere_maggiori_informazioni
|
44
|
+
case
|
45
|
+
when self.class.is_a?(Sintassi)
|
46
|
+
# TO DO
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require "rainbow"
|
3
3
|
require_relative "utils/debug"
|
4
|
+
require_relative "errore"
|
4
5
|
|
5
6
|
module Italian
|
6
7
|
module Ruby
|
@@ -8,43 +9,22 @@ module Italian
|
|
8
9
|
|
9
10
|
STAMPA_DETTAGLI_TRADUZIONE = false
|
10
11
|
|
11
|
-
class Errore < StandardError
|
12
|
-
attr_accessor :messaggio, :file, :linea, :riga, :posizione
|
13
|
-
|
14
|
-
def initialize(messaggio: nil, file: nil, linea: nil, riga: 0, posizione: 0)
|
15
|
-
@messaggio = messaggio
|
16
|
-
@file = file
|
17
|
-
@linea = linea
|
18
|
-
@riga = riga
|
19
|
-
@posizione = posizione
|
20
|
-
end
|
21
|
-
|
22
|
-
class NonSupportato < Errore; end
|
23
|
-
class IndividuazioneStringa < Errore; end
|
24
|
-
end
|
25
|
-
|
26
12
|
class << self
|
27
13
|
|
28
|
-
def traduci(file)
|
29
|
-
|
14
|
+
def traduci(file = nil, &block)
|
15
|
+
if not file.nil?
|
30
16
|
codice_tradotto = File.readlines(file).map.with_index do |linea, riga|
|
31
17
|
traduci_linea file, linea, riga
|
32
18
|
end
|
33
19
|
codice_tradotto.join
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
puts "#{errore.riga}".ciano
|
43
|
-
puts errore.linea
|
44
|
-
puts "^".rjust(errore.posizione + 1, " ").verde_lime
|
45
|
-
puts
|
46
|
-
puts "-----------------------------------------------------------------------------".alzavola
|
47
|
-
exit 1
|
20
|
+
else
|
21
|
+
if block_given?
|
22
|
+
begin
|
23
|
+
block.call
|
24
|
+
rescue StandardError => errore
|
25
|
+
Italian::Ruby::Errore.new([ errore.message, errore.backtrace ].join("\n"), "-", 0, 0).stampa
|
26
|
+
end
|
27
|
+
end
|
48
28
|
end
|
49
29
|
end
|
50
30
|
|
@@ -85,13 +65,11 @@ module Italian
|
|
85
65
|
|
86
66
|
private
|
87
67
|
|
88
|
-
def errore!(classe, messaggio, file, linea, riga, posizione)
|
89
|
-
raise classe.new(messaggio: messaggio, file: file, linea: linea, riga: riga, posizione: posizione)
|
90
|
-
end
|
91
|
-
|
92
68
|
def controlla_stringa_singola(file, linea, riga, posizione_commento, posizione_stringa_singola, posizione_stringa_doppia)
|
93
69
|
if posizione_stringa_singola < posizione_commento and posizione_stringa_singola < posizione_stringa_doppia
|
94
|
-
|
70
|
+
Italian::Ruby::Errore::NonSupportato.new(
|
71
|
+
"Le stringhe con singolo apice non sono supportate.",
|
72
|
+
file, riga, posizione_stringa_singola).stampa
|
95
73
|
end
|
96
74
|
end
|
97
75
|
|
@@ -100,7 +78,9 @@ module Italian
|
|
100
78
|
|
101
79
|
prossima_posizione_stringa_doppia = linea[posizione_stringa_doppia + 1..].index %{"}
|
102
80
|
if prossima_posizione_stringa_doppia.nil?
|
103
|
-
|
81
|
+
Italian::Ruby::Errore::IndividuazioneStringa.new(
|
82
|
+
"Non è stato possibile trovare la terminazione della stringa.",
|
83
|
+
file, riga, posizione_stringa_doppia).stampa
|
104
84
|
end
|
105
85
|
end
|
106
86
|
|
data/lib/italian/ruby/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: italian-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francesco Ballardin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -78,6 +78,7 @@ files:
|
|
78
78
|
- lib/italian/ruby/core_ext/date.rb
|
79
79
|
- lib/italian/ruby/core_ext/enumerator.rb
|
80
80
|
- lib/italian/ruby/core_ext/errors.rb
|
81
|
+
- lib/italian/ruby/core_ext/false_class.rb
|
81
82
|
- lib/italian/ruby/core_ext/file.rb
|
82
83
|
- lib/italian/ruby/core_ext/float.rb
|
83
84
|
- lib/italian/ruby/core_ext/gems/bson.rb
|
@@ -99,6 +100,8 @@ files:
|
|
99
100
|
- lib/italian/ruby/core_ext/string.rb
|
100
101
|
- lib/italian/ruby/core_ext/symbol.rb
|
101
102
|
- lib/italian/ruby/core_ext/time.rb
|
103
|
+
- lib/italian/ruby/core_ext/true_class.rb
|
104
|
+
- lib/italian/ruby/errore.rb
|
102
105
|
- lib/italian/ruby/traduttore.rb
|
103
106
|
- lib/italian/ruby/utils/debug.rb
|
104
107
|
- lib/italian/ruby/version.rb
|