italian-ruby 1.0.4 → 1.0.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 96fbb4841f7e983b899bc5aac6c5e3446f1c16c516d8a6ec0d0cb950e270983b
4
- data.tar.gz: 91db46a507b9f504a74ea3885404637a1b5ffe51ef3b4da5ffc21fbc9e4c8959
3
+ metadata.gz: 51a6520f085fb61b764c49b3165d08e819c4353c8f104fe8535bbc71a0edb9aa
4
+ data.tar.gz: da4aa857868709e3a014bbaa2238d491e0d3725799a29174cfe963794afbef7a
5
5
  SHA512:
6
- metadata.gz: f394f7bb7c4f88dc88db20737aa2de48369524b41937c83ff7a524da6ec8be21e2200b89d47c36d6425849ec0105765f1feeacf7b8716715652d2302e1add49e
7
- data.tar.gz: 4cf32fefd2cc6366360c8f71030c5a9f878c821002b5980d93a6ed3082730889fd95924990cda297be58233b03e2d7801150d8f6224a04bbb824e701664de361
6
+ metadata.gz: eb51969d7f8e2115ff113d363ebf9d86cb951de4246896316ed1b73cbcbe0d56feaf603a3b7a95f6f83f40ce7b2f3900c2238679b1845f12d29ed14217da9646
7
+ data.tar.gz: dbce4bb55387818e9a6ea1cea114ab078d9111cba3026475c70b922e62beaad4e6458be317bf0fc717b1639ad6acc116678ce950e3ff03de3b80dbc376ba0c21
@@ -8,6 +8,7 @@ class Array
8
8
  alias :per_ognuna :each
9
9
  alias :in_fette_da :each_slice
10
10
  alias :mappa :map
11
+ alias :mappa! :map!
11
12
  alias :vuoto? :empty?
12
13
  alias :vuota? :empty?
13
14
  alias :primo :first
@@ -77,6 +78,8 @@ class Array
77
78
 
78
79
  alias :specificato? :esiste?
79
80
  alias :specificata? :esiste?
81
+ alias :specificati? :esiste?
82
+ alias :specificate? :esiste?
80
83
  alias :seconda :secondo
81
84
  alias :salta_gli_ultimi :tronca
82
85
  alias :salta_le_ultime :tronca
@@ -37,6 +37,7 @@ class Hash
37
37
  alias :almeno_una? :any?
38
38
  alias :nessuno? :none?
39
39
  alias :nessuna? :none?
40
+ alias :in_stringa :to_json
40
41
  alias :in_mappa :to_h
41
42
  alias :in_lista :to_a
42
43
  alias :inverti :invert
@@ -3,7 +3,9 @@
3
3
  module Kernel
4
4
 
5
5
  alias :classe :class
6
+ alias :traccia_chiamante :caller_locations
6
7
  alias :ottieni_variabile_istanza :instance_variable_get
7
8
  alias :imposta_variabile_istanza :instance_variable_set
9
+ alias :rimuovi_variabile_istanza :remove_instance_variable
8
10
 
9
11
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative "metodi/array"
4
4
  require_relative "metodi/date"
5
+ require_relative "metodi/false_class"
5
6
  require_relative "metodi/hash"
6
7
  require_relative "metodi/integer"
7
8
  require_relative "metodi/json"
@@ -9,9 +10,12 @@ require_relative "metodi/kernel"
9
10
  require_relative "metodi/main"
10
11
  require_relative "metodi/module"
11
12
  require_relative "metodi/nil_class"
13
+ require_relative "metodi/numeric"
12
14
  require_relative "metodi/object"
13
15
  require_relative "metodi/open_struct"
14
16
  require_relative "metodi/range"
15
17
  require_relative "metodi/socket"
16
18
  require_relative "metodi/string"
19
+ require_relative "metodi/symbol"
17
20
  require_relative "metodi/time"
21
+ require_relative "metodi/true_class"
@@ -14,6 +14,22 @@ class Array
14
14
  !include? *args
15
15
  end
16
16
 
17
+ ##
18
+ # Esegue i metodi specificati per ogni elemento della lista.
19
+ def campiona(*method_names)
20
+ self.map do |element|
21
+ method_names.map do |method_name|
22
+ if element.respond_to? method_name
23
+ element.send method_name
24
+ elsif element.is_a? Hash
25
+ element[method_name]
26
+ else
27
+ raise ArgumentError, "Array elements do not respond to #{method_name}."
28
+ end
29
+ end
30
+ end
31
+ end
32
+
17
33
  ##
18
34
  # Esegue il metodo specificato con gli argomenti specificati
19
35
  # per ogni elemento della lista.
@@ -102,4 +118,18 @@ class Array
102
118
  self.drop 1
103
119
  end
104
120
 
121
+ ##
122
+ # Rappresentazione per stampa.
123
+ def _stampa(i = 0)
124
+ return "[]" if empty?
125
+ spazi = i.times.map { " " }.join
126
+ spazi_valori = (i + 2).times.map { " " }.join
127
+ [ "[",
128
+ *self.map do |e|
129
+ "#{spazi_valori}#{e._stampa(i + 2)},"
130
+ end,
131
+ "#{spazi}]"
132
+ ].join("\r\n")
133
+ end
134
+
105
135
  end
@@ -43,4 +43,10 @@ class Date
43
43
  .gsub(/December/i, "Dicembre")
44
44
  end
45
45
 
46
+ ##
47
+ # Rappresentazione per stampa.
48
+ def _stampa(*args)
49
+ formatta("%d %B %Y").arancione
50
+ end
51
+
46
52
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class FalseClass
4
+
5
+ ##
6
+ # Rappresentazione per stampa.
7
+ def _stampa(*args)
8
+ "no".rosso
9
+ end
10
+
11
+ end
@@ -54,4 +54,52 @@ class Hash
54
54
  self.select { |key, value| key.in? keys }
55
55
  end
56
56
 
57
+ ##
58
+ # Ritorna una rappresentazione a singolo livello, con notazione ".".
59
+ def puntifica(*prefissi)
60
+ mappa_puntificata = {}
61
+
62
+ self.each do |chiave, valore|
63
+ case valore
64
+ when Hash
65
+ valore.puntifica *prefissi, chiave do |chiave_prefissa, valore_finale|
66
+ if block_given?
67
+ yield chiave_prefissa, valore_finale
68
+ else
69
+ mappa_puntificata.store chiave_prefissa, valore_finale
70
+ end
71
+ end
72
+ else
73
+ prefisso = [ *prefissi, chiave ].unisci "."
74
+ if block_given?
75
+ yield prefisso, valore
76
+ else
77
+ mappa_puntificata.store prefisso, valore
78
+ end
79
+ end
80
+ end
81
+
82
+ mappa_puntificata
83
+ end
84
+
85
+ ##
86
+ # Rappresentazione per stampa.
87
+ def _stampa(i = 0)
88
+ return "{}" if empty?
89
+ spazi = i.times.map { " " }.join
90
+ spazi_chiavi = (i + 2).times.map { " " }.join
91
+ [ "{",
92
+ *self.map do |k, v|
93
+ if k.is_a? Symbol
94
+ "#{spazi_chiavi}#{k}: #{v._stampa(i + 2)},"
95
+ elsif k.is_a? String
96
+ "#{spazi_chiavi}\"#{k}\" => #{v._stampa(i + 2)},"
97
+ else
98
+ "#{spazi_chiavi}#{k._stampa(i + 2)} => #{v._stampa(i + 2)},"
99
+ end
100
+ end,
101
+ "#{spazi}}"
102
+ ].join("\r\n")
103
+ end
104
+
57
105
  end
@@ -8,4 +8,10 @@ class NilClass
8
8
  !nil?
9
9
  end
10
10
 
11
+ ##
12
+ # Rappresentazione per stampa.
13
+ def _stampa(*args)
14
+ "nullo".azzurro
15
+ end
16
+
11
17
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Numeric
4
+
5
+ ##
6
+ # Rappresentazione per stampa.
7
+ def _stampa(*args)
8
+ self.to_s.verde
9
+ end
10
+
11
+ end
@@ -53,6 +53,12 @@ class Object
53
53
  to_json
54
54
  end
55
55
 
56
+ ##
57
+ # Rappresentazione per stampa.
58
+ def _stampa(*args)
59
+ inspect
60
+ end
61
+
56
62
  private
57
63
 
58
64
  ##
@@ -5,13 +5,14 @@ class String
5
5
  ##
6
6
  # Codici colori.
7
7
  CODICI_COLORI = Hash[
8
- rosso: "31",
9
- verde: "32",
10
- giallo: "33",
11
- blu: "34",
12
- magenta: "35",
13
- azzurro: "36",
14
- arancione: "38;5;214"
8
+ rosso: "31",
9
+ verde: "32",
10
+ giallo: "33",
11
+ blu: "34",
12
+ magenta: "35",
13
+ azzurro: "36",
14
+ arancione: "38;5;214",
15
+ verde_pallido: "38;5;157"
15
16
  ].freeze
16
17
 
17
18
  ##
@@ -53,11 +54,17 @@ class String
53
54
  colorize CODICI_COLORI[:arancione]
54
55
  end
55
56
 
57
+ def verde_pallido
58
+ colorize CODICI_COLORI[:verde_pallido]
59
+ end
60
+
56
61
  def decolorizza
57
62
  self.gsub /(\u001b\[3\dm|\u001b\[3\d;\d;\d\d\dm|\u001b\[0m)/, ""
58
63
  end
59
64
 
60
65
  def disaccoppia_colore
66
+ return [ nil, self ] if self.decolorizza == self
67
+
61
68
  indice_inizio_colore = self.index "m"
62
69
  codice_colore = self[2..indice_inizio_colore - 1]
63
70
 
@@ -171,4 +178,10 @@ class String
171
178
  self.length - 1
172
179
  end
173
180
 
181
+ ##
182
+ # Rappresentazione per stampa.
183
+ def _stampa(*args)
184
+ %{"#{self}"}.giallo
185
+ end
186
+
174
187
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Symbol
4
+
5
+ ##
6
+ # Rappresentazione per stampa.
7
+ def _stampa(*args)
8
+ ":#{self}".blu
9
+ end
10
+
11
+ end
@@ -48,4 +48,10 @@ class Time
48
48
  Time.new(self.year, self.month, self.day, self.hour, self.min, 59)
49
49
  end
50
50
 
51
+ ##
52
+ # Rappresentazione per stampa.
53
+ def _stampa(*args)
54
+ "#{in_data.formatta "%d %B %Y"} #{strftime "%H:%M:%S %z"}".arancione
55
+ end
56
+
51
57
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class TrueClass
4
+
5
+ ##
6
+ # Rappresentazione per stampa.
7
+ def _stampa(*args)
8
+ "si".verde
9
+ end
10
+
11
+ end
@@ -1,5 +1,5 @@
1
1
  module Italian
2
2
  module Ruby
3
- VERSIONE = "1.0.4"
3
+ VERSIONE = "1.0.9"
4
4
  end
5
5
  end
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: 1.0.4
4
+ version: 1.0.9
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-11-10 00:00:00.000000000 Z
11
+ date: 2020-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -109,6 +109,7 @@ files:
109
109
  - lib/italian/ruby/metodi.rb
110
110
  - lib/italian/ruby/metodi/array.rb
111
111
  - lib/italian/ruby/metodi/date.rb
112
+ - lib/italian/ruby/metodi/false_class.rb
112
113
  - lib/italian/ruby/metodi/hash.rb
113
114
  - lib/italian/ruby/metodi/integer.rb
114
115
  - lib/italian/ruby/metodi/json.rb
@@ -116,13 +117,16 @@ files:
116
117
  - lib/italian/ruby/metodi/main.rb
117
118
  - lib/italian/ruby/metodi/module.rb
118
119
  - lib/italian/ruby/metodi/nil_class.rb
120
+ - lib/italian/ruby/metodi/numeric.rb
119
121
  - lib/italian/ruby/metodi/object.rb
120
122
  - lib/italian/ruby/metodi/open_struct.rb
121
123
  - lib/italian/ruby/metodi/range.rb
122
124
  - lib/italian/ruby/metodi/rspec.rb
123
125
  - lib/italian/ruby/metodi/socket.rb
124
126
  - lib/italian/ruby/metodi/string.rb
127
+ - lib/italian/ruby/metodi/symbol.rb
125
128
  - lib/italian/ruby/metodi/time.rb
129
+ - lib/italian/ruby/metodi/true_class.rb
126
130
  - lib/italian/ruby/traduttore.rb
127
131
  - lib/italian/ruby/traduttore/linea.rb
128
132
  - lib/italian/ruby/traduttore/pezzo.rb