Class: Array
- Defined in:
- lib/italian/ruby/alias/array.rb,
lib/italian/ruby/metodi/array.rb
Instance Method Summary collapse
-
#_stampa(i = 0) ⇒ Object
Rappresentazione per stampa.
-
#campiona(*method_names) ⇒ Object
Esegue i metodi specificati per ogni elemento della lista.
-
#congela_in_profondità ⇒ Object
Congela in profondità la lista.
-
#esiste? ⇒ Boolean
Determina se una lista non è nullo e non è vuoto.
-
#in_mappa(&block) ⇒ Object
Converte la lista in una mappa.
-
#in_pacchetti_equi(da: 25) ⇒ Object
Divide la lista in n pacchetti in modo che ogni pacchetto abbia circa lo stesso numero di elementi.
-
#in_pacchetti_percentuali(&blocco) ⇒ Object
Pacchetti equi da 100.
-
#mappa_e_appiattisci(&block) ⇒ Object
Mappa e appiattisce in un unico metodo.
-
#mappa_e_compatta(&block) ⇒ Object
Mappa e compatta in un unico metodo.
-
#mappa_e_rimuovi_duplicati(&block) ⇒ Object
Mappa e rimuove duplicati in un unico metodo.
-
#non_include?(*args) ⇒ Boolean
Determina se una lista non include un dato elemento.
-
#pizzica(method_name, *method_args) ⇒ Object
Esegue il metodo specificato con gli argomenti specificati per ogni elemento della lista.
- #salta_gli_ultimi ⇒ Object
-
#salta_il_primo ⇒ Object
Restituisce la lista saltando il primo elemento.
- #salta_la_prima ⇒ Object
- #salta_le_ultime ⇒ Object
- #seconda ⇒ Object
-
#secondo ⇒ Object
Restituisce il secondo elemento della lista.
-
#simbolizza ⇒ Object
Converte tutti gli elementi della lista in simboli, creando una nuova lista.
-
#simbolizza! ⇒ Object
Converte tutti gli elementi della lista in simboli, sostituendo la lista originale.
- #specificata? ⇒ Object
- #specificate? ⇒ Object
- #specificati? ⇒ Object
- #specificato? ⇒ Object
- #tranne_il_primo ⇒ Object
- #tranne_la_prima ⇒ Object
-
#tronca(n = 1) ⇒ Object
Restituisce la lista togliendo gli ultimi n elementi.
Instance Method Details
#_stampa(i = 0) ⇒ Object
Rappresentazione per stampa.
175 176 177 178 179 180 181 182 183 184 185 |
# File 'lib/italian/ruby/metodi/array.rb', line 175 def _stampa(i = 0) return "[]" if empty? spazi = i.times.map { " " }.join spazi_valori = (i + 2).times.map { " " }.join [ "[", *self.map do |e| "#{spazi_valori}#{e._stampa(i + 2)}," end, "#{spazi}]" ].join("\r\n") end |
#campiona(*method_names) ⇒ Object
Esegue i metodi specificati per ogni elemento della lista.
60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/italian/ruby/metodi/array.rb', line 60 def campiona(*method_names) self.map do |element| method_names.map do |method_name| if element.respond_to? method_name element.send method_name elsif element.is_a? Hash element[method_name] else raise ArgumentError, "Array elements do not respond to #{method_name}." end end end end |
#congela_in_profondità ⇒ Object
Congela in profondità la lista.
118 119 120 121 122 123 124 125 |
# File 'lib/italian/ruby/metodi/array.rb', line 118 def congela_in_profondità self.each do |element| next unless element.respond_to? :congela_in_profondità element.congela_in_profondità end self.freeze self end |
#esiste? ⇒ Boolean
Determina se una lista non è nullo e non è vuoto.
7 8 9 |
# File 'lib/italian/ruby/metodi/array.rb', line 7 def esiste? !nil? && !empty? end |
#in_mappa(&block) ⇒ Object
Converte la lista in una mappa.
147 148 149 150 151 152 153 |
# File 'lib/italian/ruby/metodi/array.rb', line 147 def in_mappa(&block) if block_given? self.map(&block).to_h else self.to_h end end |
#in_pacchetti_equi(da: 25) ⇒ Object
Divide la lista in n pacchetti in modo che ogni pacchetto abbia circa lo stesso numero di elementi.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/italian/ruby/metodi/array.rb', line 20 def in_pacchetti_equi da: 25 conteggio = self.count if conteggio < da avanzamento = da.in_decimale / conteggio indice = 0 self.each.with_index do |elemento, indice_elemento| pacchetto = [ elemento ] indice += avanzamento indice = da if indice_elemento == conteggio - 1 yield pacchetto, indice_elemento + 1, conteggio if block_given? end else avanzamento = conteggio / da.in_decimale elementi_presi = 0 contatore = 0 indice = 0 while contatore < da elementi_da_prendere = (indice + avanzamento).round - 1 pacchetto = self[elementi_presi..elementi_da_prendere] elementi_presi = elementi_da_prendere + 1 indice += avanzamento contatore += 1 yield pacchetto, elementi_presi, conteggio if block_given? end end self end |
#in_pacchetti_percentuali(&blocco) ⇒ Object
Pacchetti equi da 100.
54 55 56 |
# File 'lib/italian/ruby/metodi/array.rb', line 54 def in_pacchetti_percentuali &blocco in_pacchetti_equi da: 100, &blocco end |
#mappa_e_appiattisci(&block) ⇒ Object
Mappa e appiattisce in un unico metodo.
141 142 143 |
# File 'lib/italian/ruby/metodi/array.rb', line 141 def mappa_e_appiattisci(&block) self.map.with_index(&block).flatten end |
#mappa_e_compatta(&block) ⇒ Object
Mappa e compatta in un unico metodo.
135 136 137 |
# File 'lib/italian/ruby/metodi/array.rb', line 135 def mappa_e_compatta(&block) self.map.with_index(&block).compact end |
#mappa_e_rimuovi_duplicati(&block) ⇒ Object
Mappa e rimuove duplicati in un unico metodo.
129 130 131 |
# File 'lib/italian/ruby/metodi/array.rb', line 129 def mappa_e_rimuovi_duplicati(&block) self.map.with_index(&block).uniq end |
#non_include?(*args) ⇒ Boolean
Determina se una lista non include un dato elemento.
13 14 15 |
# File 'lib/italian/ruby/metodi/array.rb', line 13 def non_include?(*args) !include? *args end |
#pizzica(method_name, *method_args) ⇒ Object
Esegue il metodo specificato con gli argomenti specificati per ogni elemento della lista.
77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/italian/ruby/metodi/array.rb', line 77 def pizzica(method_name, *method_args) self.map do |element| if element.respond_to? method_name element.send method_name, *method_args elsif element.is_a? Hash element[method_name] else raise ArgumentError, "Array elements do not respond to #{method_name}." end end end |
#salta_gli_ultimi ⇒ Object
96 |
# File 'lib/italian/ruby/alias/array.rb', line 96 alias :salta_gli_ultimi :tronca |
#salta_il_primo ⇒ Object
Restituisce la lista saltando il primo elemento.
169 170 171 |
# File 'lib/italian/ruby/metodi/array.rb', line 169 def salta_il_primo self.drop 1 end |
#salta_la_prima ⇒ Object
98 |
# File 'lib/italian/ruby/alias/array.rb', line 98 alias :salta_la_prima :salta_il_primo |
#salta_le_ultime ⇒ Object
97 |
# File 'lib/italian/ruby/alias/array.rb', line 97 alias :salta_le_ultime :tronca |
#seconda ⇒ Object
95 |
# File 'lib/italian/ruby/alias/array.rb', line 95 alias :seconda :secondo |
#secondo ⇒ Object
Restituisce il secondo elemento della lista.
157 158 159 |
# File 'lib/italian/ruby/metodi/array.rb', line 157 def secondo self[1] end |
#simbolizza ⇒ Object
Converte tutti gli elementi della lista in simboli, creando una nuova lista.
106 107 108 109 110 111 112 113 114 |
# File 'lib/italian/ruby/metodi/array.rb', line 106 def simbolizza self.map do |element| if element.is_a? Hash or element.is_a? Array element.simbolizza else element end end end |
#simbolizza! ⇒ Object
Converte tutti gli elementi della lista in simboli, sostituendo la lista originale.
92 93 94 95 96 97 98 99 100 101 |
# File 'lib/italian/ruby/metodi/array.rb', line 92 def simbolizza! self.map! do |element| if element.is_a? Hash or element.is_a? Array element.simbolizza! else element end end self end |
#specificata? ⇒ Object
92 |
# File 'lib/italian/ruby/alias/array.rb', line 92 alias :specificata? :esiste? |
#specificate? ⇒ Object
94 |
# File 'lib/italian/ruby/alias/array.rb', line 94 alias :specificate? :esiste? |
#specificati? ⇒ Object
93 |
# File 'lib/italian/ruby/alias/array.rb', line 93 alias :specificati? :esiste? |
#specificato? ⇒ Object
91 |
# File 'lib/italian/ruby/alias/array.rb', line 91 alias :specificato? :esiste? |
#tranne_il_primo ⇒ Object
100 |
# File 'lib/italian/ruby/alias/array.rb', line 100 alias :tranne_il_primo :salta_il_primo |
#tranne_la_prima ⇒ Object
99 |
# File 'lib/italian/ruby/alias/array.rb', line 99 alias :tranne_la_prima :salta_il_primo |
#tronca(n = 1) ⇒ Object
Restituisce la lista togliendo gli ultimi n elementi.
163 164 165 |
# File 'lib/italian/ruby/metodi/array.rb', line 163 def tronca(n = 1) self[0..(-1 - n)] end |