Sha256: 4888146cbf5a771c3ebf1c86a12de7c52f5cb87e4c393c906c5d85a2a3e2605a
Contents?: true
Size: 1.76 KB
Versions: 1
Compression:
Stored size: 1.76 KB
Contents
# frozen_string_literal: true # = hash_extend.rb # # @author Rodrigo Fernández # # == Clase Hash # Esta clase extiende las funcionalidades de la clase Hash de Ruby class Hash # Retorna un hash con elementos aleatorios del hash original. # @param quantity [Integer] la cantidad de elementos del nuevo hash retornado. # @return [Hash] un hash con elementos aleatorios del hash original. # @example # hash = {uno: 'uno', dos: 'dos', tres: 'tres'} # hash.sample # => {dos: 'dos'} # hash.sample(2) # => {uno: 'uno', tres: 'tres'} 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 # Retorna un hash con elementos aleatorios del hash original y borra estos elementos del hash. # @param quantity [Integer] la cantidad de elementos del nuevo hash retornado. # @return [Hash] un hash con elementos aleatorios del hash original. # @example # hash = {uno: 'uno', dos: 'dos', tres: 'tres'} # hash.sample # => {dos: 'dos'} # hash.sample(2) # => {uno: 'uno', tres: 'tres'} def sample!(quantity = 1) samples = sample(quantity) remove!(samples.keys) samples end # Borra elementos del hash. # @note Los elementos son borrados del hash original # @param keys [Array] las claves a remover separadas por comas o en un arreglo. # @return [Hash] un hash sin los elementos indicados. # @example # hash = {uno: 'uno', dos: 'dos', tres: 'tres'} # hash.remove!(:uno) # => {:dos=>"dos", :tres=>"tres"} # hash.remove!(:uno, :dos, :tres) # => {} # hash # => {} def remove!(*keys) keys.flatten.each { |key| delete(key) } self end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
liri-0.3.1 | lib/hash_extend.rb |