Class: Plato::PlatoAmbiental

Inherits:
Plato
  • Object
show all
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

List::VERSION

Instance Attribute Summary

Attributes inherited from Plato

#alimentos, #cantidades, #kcal, #nombre

Instance Method Summary collapse

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

#emisionesObject

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

#huellaObject

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

#m2Object

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_sObject

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