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
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
non_specificata?()
Alias for: non_esiste?
non_specificato?()
Alias for: non_esiste?
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
specificata?()
Alias for: esiste?
specificato?()
Alias for: esiste?
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