Class: Plato::PlatoAmbiental
- Defined in:
- lib/alimentos/platoAmbiental.rb
Overview
Clase de plato ambientales que hereda de plato En ella se tiene en cuenta los valores de contaminación que lleva consigo un plato
Constant Summary
Constants included from List
Instance Attribute Summary
Attributes inherited from Plato
#alimentos, #cantidades, #kcal, #nombre
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Sobrecarga propia de la huella para que ordene los platos en función de la huella.
-
#emisiones ⇒ Object
Calcula las emisiones asociadas a cada plato.
-
#huella ⇒ Object
Calcula la huella ambiental de cada uno de los platos.
-
#initialize(nombre, ingredientes, cantidades) ⇒ PlatoAmbiental
constructor
A new instance of PlatoAmbiental.
-
#m2 ⇒ Object
Calcula los metros cuadrados que gasta cada plato.
-
#to_s ⇒ Object
Serializa el plato ambiental.
Methods inherited from Plato
#calculoCalorico, #porcarbohidratos, #porlipidos, #porproteinas
Constructor Details
#initialize(nombre, ingredientes, cantidades) ⇒ PlatoAmbiental
Returns a new instance of PlatoAmbiental.
7 8 9 |
# File 'lib/alimentos/platoAmbiental.rb', line 7 def initialize(nombre,ingredientes,cantidades) super(nombre,ingredientes,cantidades) end |
Instance Method Details
#<=>(other) ⇒ Object
Sobrecarga propia de la huella para que ordene los platos en función de la huella
59 60 61 |
# File 'lib/alimentos/platoAmbiental.rb', line 59 def <=>(other) huella()<=>other.huella() end |
#emisiones ⇒ Object
Calcula las emisiones asociadas a cada plato
12 13 14 15 16 17 18 19 |
# File 'lib/alimentos/platoAmbiental.rb', line 12 def emisiones() emisiones= @alimentos.collect{ |x| x.emisiones } cantidades = @cantidades.collect{|x| x} for i in 0...emisiones.size() do emisiones[i]=emisiones[i]*cantidades[i]*0.01 end (emisiones.sum).round(2) end |
#huella ⇒ Object
Calcula la huella ambiental de cada uno de los platos
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/alimentos/platoAmbiental.rb', line 37 def huella() ienergia=0 icarbono=0 if @kcal<670 ienergia+=1 elsif @kcal > 830 ienergia+=3 else ienergia+=2 end if emisiones()<800 icarbono+=1 elsif emisiones()>1200 icarbono+=3 else icarbono+=2 end huellapropia= (ienergia+icarbono)/2 huellapropia end |
#m2 ⇒ Object
Calcula los metros cuadrados que gasta cada plato
22 23 24 25 26 27 28 29 |
# File 'lib/alimentos/platoAmbiental.rb', line 22 def m2() m2= @alimentos.collect{ |x| x.m2} cantidades = @cantidades.collect{|x| x} for i in 0...m2.size() do m2[i]=m2[i]*cantidades[i]*0.01 end (m2.sum).round(2) end |
#to_s ⇒ Object
Serializa el plato ambiental
32 33 34 |
# File 'lib/alimentos/platoAmbiental.rb', line 32 def to_s() "#{nombre}: #{alimentos.collect{|x| x.nombre}.join(",")} #{@kcal}kcal\nEmisiones: #{emisiones()}\nM2: #{m2()}" end |