class Mappa
Public Instance Methods
+(altra_mappa)
click to toggle source
Somma due mappe.
# File lib/italian/ruby/metodi/hash.rb, line 76 def +(altra_mappa) altra_mappa.each do |chiave, valore| if self.has_key? chiave valore_sommato = valore + self[chiave] self.store chiave, valore_sommato else self.store chiave, valore end end self end
_stampa(i = 0)
click to toggle source
Rappresentazione per stampa.
# File lib/italian/ruby/metodi/hash.rb, line 118 def _stampa(i = 0) return "{}" if empty? spazi = i.times.map { " " }.join spazi_chiavi = (i + 2).times.map { " " }.join [ "{", *self.map do |k, v| if k.is_a? Symbol "#{spazi_chiavi}#{k}: #{v._stampa(i + 2)}," elsif k.is_a? String "#{spazi_chiavi}\"#{k}\" => #{v._stampa(i + 2)}," else "#{spazi_chiavi}#{k._stampa(i + 2)} => #{v._stampa(i + 2)}," end end, "#{spazi}}" ].join("\r\n") end
congela_in_profondità()
click to toggle source
Congela in profondità la mappa.
# File lib/italian/ruby/metodi/hash.rb, line 52 def congela_in_profondità self.each do |key, value| next unless value.respond_to? :congela_in_profondità value.congela_in_profondità end self.freeze self end
esiste?()
click to toggle source
Determina se una mappa non è nulla e non è vuota.
# File lib/italian/ruby/metodi/hash.rb, line 7 def esiste? !nil? && !empty? end
Also aliased as: specificato?, specificata?
esponi(*keys)
click to toggle source
Espone le chiavi passate in una nuova mappa.
# File lib/italian/ruby/metodi/hash.rb, line 63 def esponi(*keys) return self if keys.none? self.select { |key, value| key.in? keys } end
non_esiste?()
click to toggle source
Determina se una mappa è nulla o è vuota.
# File lib/italian/ruby/metodi/hash.rb, line 13 def non_esiste? !esiste? end
Also aliased as: non_specificato?, non_specificata?
non_ha_chiave?(key)
click to toggle source
Determina se una mappa non ha una data chiave.
# File lib/italian/ruby/metodi/hash.rb, line 19 def non_ha_chiave?(key) !has_key? key end
puntifica(*prefissi) { |chiave_prefissa, valore_finale| ... }
click to toggle source
Ritorna una rappresentazione a singolo livello, con notazione “.”.
# File lib/italian/ruby/metodi/hash.rb, line 90 def puntifica(*prefissi) mappa_puntificata = {} self.each do |chiave, valore| case valore when Hash valore.puntifica *prefissi, chiave do |chiave_prefissa, valore_finale| if block_given? yield chiave_prefissa, valore_finale else mappa_puntificata.store chiave_prefissa, valore_finale end end else prefisso = [ *prefissi, chiave ].unisci "." if block_given? yield prefisso, valore else mappa_puntificata.store prefisso, valore end end end mappa_puntificata end
simbolizza()
click to toggle source
Restituisce la mappa con le chiavi convertite in simbolo. Viene creata una nuova mappa.
# File lib/italian/ruby/metodi/hash.rb, line 38 def simbolizza copy = Hash.new self.each do |key, value| if value.is_a? Hash or value.is_a? Array copy[key.to_sym] = value.simbolizza else copy[key.to_sym] = value end end copy end
simbolizza!()
click to toggle source
Restituisce la mappa con le chiavi convertite in simbolo. Viene sostituita la mappa esistente.
# File lib/italian/ruby/metodi/hash.rb, line 26 def simbolizza! keys.each do |key| value = delete key value.simbolizza! if value.is_a? Hash or value.is_a? Array self[key.to_sym] = value end self end
valori(*chiavi)
click to toggle source
Espone i valori.
# File lib/italian/ruby/metodi/hash.rb, line 70 def valori *chiavi self.esponi(*chiavi).values end