Class: GrupoAlimenticio

Inherits:
Lista
  • Object
show all
Defined in:
lib/alimento/GrupoAlimenticio.rb,
lib/alimento/version.rb

Overview

Representación de un grupo alimenticio con categoría Hereda de Lista

Author:

  • Eugenio José González Luis

Since:

  • 1.0.0

Constant Summary

VERSION =

Version de la clase GrupoAlimenticio

"1.0.0"

Instance Attribute Summary collapse

Attributes inherited from Lista

#head, #tail

Instance Method Summary collapse

Methods inherited from Lista

#each, #pop_head, #pop_tail, #push, #push_head, #push_tail

Constructor Details

#initialize(categoria) ⇒ GrupoAlimenticio

Constructor de GrupoAlimenticio

Parameters:

  • categoria (String)

    categoria del grupo alimenticio

Since:

  • 1.0.0



16
17
18
19
# File 'lib/alimento/GrupoAlimenticio.rb', line 16

def initialize(categoria)
    super()
    @categoria = categoria
end

Instance Attribute Details

#categoriaObject (readonly)

Since:

  • 1.0.0



10
11
12
# File 'lib/alimento/GrupoAlimenticio.rb', line 10

def categoria
  @categoria
end

#NodeObject (readonly)

head Nodo en la cabeza de la lista

Returns:

  • (Object)

    the current value of Node



9
10
11
# File 'lib/alimento/GrupoAlimenticio.rb', line 9

def Node
  @Node
end

#StringObject (readonly)

categoria categoria del grupo alimenticio representado

Returns:

  • (Object)

    the current value of String



9
10
11
# File 'lib/alimento/GrupoAlimenticio.rb', line 9

def String
  @String
end

Instance Method Details

#pop_alimentoany?

Extracción del primer AlimentoCategorizable del GrupoAlimenticio

Returns:

  • (any, nil)

    devuelve el valor guardado en el primer nodo o nil si no hay nodos en el GrupoAlimenticio

Since:

  • 1.0.0



46
47
48
# File 'lib/alimento/GrupoAlimenticio.rb', line 46

def pop_alimento()
    pop_head()
end

#push_alimento(x) ⇒ Node

Inserción de AlimentoCategorizable por la cabeza de la lista del GrupoAlimenticio

Parameters:

  • x (any)

    valor del nuevo nodo

Returns:

  • (Node)

    Devuelve el head

Since:

  • 1.0.0



25
26
27
28
29
# File 'lib/alimento/GrupoAlimenticio.rb', line 25

def push_alimento(x)
    if(x.is_a?(AlimentoCategorizable))
        push_head(AlimentoCategorizable.new(x.nombre, @categoria, x.glucidos, x.proteinas, x.lipidos))
    end
end

#push_alimentos(x) ⇒ Node

Inserción de varios AlimentoCategorizable por la cabeza de la lista del GrupoAlimenticio

Parameters:

  • x (Array<any>)

    valores de los nuevos nodos

Returns:

  • (Node)

    Devuelve el head

Since:

  • 1.0.0



35
36
37
38
39
40
41
# File 'lib/alimento/GrupoAlimenticio.rb', line 35

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