Sha256: 5e168c1253542074c674bd871103a46f11faf42fe9ff1d8030533935aa956c56

Contents?: true

Size: 1.74 KB

Versions: 1

Compression:

Stored size: 1.74 KB

Contents

# Representación de un grupo alimenticio con categoría
# Hereda de Lista
#
# @author Eugenio José González Luis
# @since 1.0.0
# @attr_reader String categoria categoria del grupo alimenticio representado
# @attr_reader Node head Nodo en la cabeza de la lista
# @attr_reader Node tail Nodo en la última posición de la lista
class GrupoAlimenticio < Lista
    attr_reader :categoria
    
    # Constructor de GrupoAlimenticio
    # @param [String] categoria categoria del grupo alimenticio
    #
    # @return [GrupoAlimenticio] Devuelve el objeto creado de clase GrupoAlimenticio
    def initialize(categoria)
        super()
        @categoria = categoria
    end
    
    # Inserción de AlimentoCategorizable por la cabeza de la lista del GrupoAlimenticio
    # @param [any] x valor del nuevo nodo
    #
    # @return [Node] Devuelve el head
    def push_alimento(x)
        if(x.is_a?(AlimentoCategorizable))
            push_head(AlimentoCategorizable.new(x.nombre, @categoria, x.glucidos, x.proteinas, x.lipidos))
        end
    end
    
    # Inserción de varios AlimentoCategorizable por la cabeza de la lista del GrupoAlimenticio
    # @param [Array<any>] x valores de los nuevos nodos
    #
    # @return [Node] Devuelve el head
    def push_alimentos(x)
        x.each do |alimento|
            if(alimento.is_a?(AlimentoCategorizable))
                push_head(AlimentoCategorizable.new(alimento.nombre, @categoria, alimento.glucidos, alimento.proteinas, alimento.lipidos))
            end
        end
    end
    
    # Extracción del primer AlimentoCategorizable del GrupoAlimenticio
    #
    # @return [any, nil] devuelve el valor guardado en el primer nodo o nil si no hay nodos en el GrupoAlimenticio
    def pop_alimento()
        pop_head()
    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
AlimentoSolete-1.0.0 lib/alimento/GrupoAlimenticio.rb