Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/hash_extend.rb
Overview
hash_extend.rb
Clase Hash
Esta clase extiende las funcionalidades de la clase Hash de Ruby
Instance Method Summary collapse
-
#remove(*keys) ⇒ Object
Retorna un nuevo hash con los elementos borrados según las claves indicadas.
-
#remove!(*keys) ⇒ Hash
Borra elementos del hash.
-
#sample(quantity = 1) ⇒ Hash
Retorna un hash con elementos aleatorios del hash original.
-
#sample!(quantity = 1) ⇒ Hash
Retorna un hash con elementos aleatorios del hash original y borra estos elementos del hash.
Instance Method Details
#remove(*keys) ⇒ Object
Retorna un nuevo hash con los elementos borrados según las claves indicadas
61 62 63 64 65 |
# File 'lib/hash_extend.rb', line 61 def remove(*keys) cloned_hash = self.clone keys.flatten.each { |key| cloned_hash.delete(key) } cloned_hash end |
#remove!(*keys) ⇒ Hash
Note:
Los elementos son borrados del hash original
Borra elementos del hash.
55 56 57 58 |
# File 'lib/hash_extend.rb', line 55 def remove!(*keys) keys.flatten.each { |key| delete(key) } self end |
#sample(quantity = 1) ⇒ Hash
Retorna un hash con elementos aleatorios del hash original.
19 20 21 22 23 24 25 26 |
# File 'lib/hash_extend.rb', line 19 def sample(quantity = 1) sample_keys = keys.sample(quantity) sample_values = {} sample_keys.each do |sample_key| sample_values[sample_key] = self[sample_key] end sample_values end |
#sample!(quantity = 1) ⇒ Hash
Retorna un hash con elementos aleatorios del hash original y borra estos elementos del hash.
37 38 39 40 41 |
# File 'lib/hash_extend.rb', line 37 def sample!(quantity = 1) samples = sample(quantity) remove!(samples.keys) samples end |