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



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