class Alimento::PlatoAmbiental

Attributes

emisiones[R]
terreno[R]

Public Class Methods

new(nombre, lista, cantidades) click to toggle source

@note Constructor de la clase que llama al de Plato y al propio @param nombre Identificador del plato @param lista Conjunto de alimentos del plato @param cantidades Vector de cantidades de cada alimento

Calls superclass method Alimento::Plato::new
# File lib/alimento/platoambiental.rb, line 16
def initialize(nombre, lista, cantidades)
        super(nombre, lista, cantidades)
        @emisiones = emisiones_total
        @terreno = terreno_total
end

Public Instance Methods

<=>(otro) click to toggle source

@note Comparador de las emisiones ambientales totales de cada plato @param otro Objeto del mismo tipo con el cual comparar @return [PlatoAmbiental] Plato con mayores emisiones

# File lib/alimento/platoambiental.rb, line 25
def <=>(otro)
        emisiones_total <=> otro.emisiones_total
end
emisiones_total() click to toggle source

@note Calculo de las emisiones de gases del plato @return [Float] Emisiones totales del plato

# File lib/alimento/platoambiental.rb, line 32
def emisiones_total
        total_emisiones = 0
        i = 0
        @lista.each{|iter|
                total_emisiones += (iter.value.gei * @cantidades[i]/100)
                i += 1
        }
        return total_emisiones.round(1)
end
huella_carbono() click to toggle source

@note Calculo de la huella de carbono total del plato @return [Integer] Indice segun la huella de carbono del plato

# File lib/alimento/platoambiental.rb, line 73
def huella_carbono
        emi_total_dia = ((emisiones_total()*1000)/365)
        if   emi_total_dia < 800
                return 1
        elsif (800..1200) === emi_total_dia
                return 2
        else
                return 3
        end
end
huella_energia() click to toggle source

@note Calculo del indice de huella nutricional del plato @return [Integer] Indice resultante

# File lib/alimento/platoambiental.rb, line 60
def huella_energia
        if   VCT() < 670
                return 1
        elsif (670..830) === VCT()
                return 2
        else
                return 3
        end
end
huella_nutricional() click to toggle source

@note Calculo del indice medio entre todos los del plato @return [Integer] Indice de media de los demas

# File lib/alimento/platoambiental.rb, line 87
def huella_nutricional
        return ((huella_carbono + huella_energia) / 2).floor
end
terreno_total() click to toggle source

@note Calculo del terreno ocupado por los alimentos del plato @return [Float] Terreno total de los alimentos del plato

# File lib/alimento/platoambiental.rb, line 45
def terreno_total
        ter_array = @lista.collect{|iter| iter.value.terreno}
        total_terreno = []
        i = 0
        while i < @cantidades.length do
                total_terreno.push(ter_array[i] * (@cantidades[i]/100))
                i +=1
        end
        return (total_terreno.sum).round(1)
end
to_s() click to toggle source

@note Formateo del plato @return [String] Datos del plato que son el nombre y energia total

# File lib/alimento/platoambiental.rb, line 94
def to_s
        string = "La eficiencia energetica de '#{nombre}' es: #{VCT()}"
        return string
end