Class: Comida

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/practica6/comida.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(nombre, proteinas, carbohidratos, lipidos, gei, costeTerreno) ⇒ Comida

Constructor

Parameters:

  • nombre (String)

    Nombre del alimento.

  • proteinas (Integer)

    Cantidad en gramos de proteinas.

  • carbohidratos (Integer)

    Cantidad en gramos de carbohidratos.

  • lipidos (Integer)

    Cantidad en gramos de lipidos.

  • gei (Integer)

    Gases de efecto invernadero emitidos en la producción de 1000g de este alimento

  • costeTerreno (Integer)

    m2 utilizados en la producción de 1000g de este alimento



18
19
20
# File 'lib/practica6/comida.rb', line 18

def initialize(nombre, proteinas, carbohidratos, lipidos, gei, costeTerreno)
  @nombre, @proteinas, @carbohidratos, @lipidos, @GEI, @costeTerreno= nombre, proteinas, carbohidratos, lipidos, gei, costeTerreno
end

Instance Attribute Details

#carbohidratosObject (readonly)

Los atributos son de lectura



6
7
8
# File 'lib/practica6/comida.rb', line 6

def carbohidratos
  @carbohidratos
end

#costeTerrenoObject (readonly)

Los atributos son de lectura



6
7
8
# File 'lib/practica6/comida.rb', line 6

def costeTerreno
  @costeTerreno
end

#GEIObject (readonly)

Los atributos son de lectura



6
7
8
# File 'lib/practica6/comida.rb', line 6

def GEI
  @GEI
end

#lipidosObject (readonly)

Los atributos son de lectura



6
7
8
# File 'lib/practica6/comida.rb', line 6

def lipidos
  @lipidos
end

#nombreObject (readonly)

Los atributos son de lectura



6
7
8
# File 'lib/practica6/comida.rb', line 6

def nombre
  @nombre
end

#proteinasObject (readonly)

Los atributos son de lectura



6
7
8
# File 'lib/practica6/comida.rb', line 6

def proteinas
  @proteinas
end

Instance Method Details

#<=>(another) ⇒ Object

Sobreescritura de la funcion <=> de la clase Comparable para comparar dos elementos

Parameters:

  • another (Comida)

    Alimento con el que se pretende comparar este alimento (el alimento que proporcione mayor kilocalorias será mayor).



50
51
52
53
54
55
56
# File 'lib/practica6/comida.rb', line 50

def <=>(another)
  if another.class== Comida
    aux1= kilocalorias
    aux2= another.kilocalorias
    aux1<=> aux2
  end
end

#kilocaloriasDouble

Devuelve un double con las kilocalorias que proporciona el alimento

Returns:

  • (Double)

    Kilocalorias que devuelve el alimento.



41
42
43
# File 'lib/practica6/comida.rb', line 41

def kilocalorias
  ((@proteinas* 4.0.to_d)+ (@lipidos* 9.0.to_d)+ (@carbohidratos* 4.0.to_d))
end

#resumenString

Devuelve un string con un resumen del alimento

Returns:

  • (String)

    Cadena del resumen del alimento.



27
28
29
30
31
32
33
34
# File 'lib/practica6/comida.rb', line 27

def resumen()
  "#{@nombre}:\n
  -Proteinas:#{@proteinas}g.\n
  -Carbohidratos:#{@carbohidratos}g.\n
  -Lipidos:#{@lipidos}g.\n
  -GEI:#{@GEI}kgCO2eq.\n
  -Coste del terreno:#{@costeTerreno}m2año.\n"
end