class Alimento

Author

Eduardo Estévez Rodríguez (alu0101014319@ull.edu.es)

Copyright

Cretive Commons

License

Distributes under the same terms as Ruby

Attributes

ca[R]

Se ha incluido el mixin Comparable

gei[R]

Se ha incluido el mixin Comparable

li[R]

Se ha incluido el mixin Comparable

no[R]

Se ha incluido el mixin Comparable

pr[R]

Se ha incluido el mixin Comparable

te[R]

Se ha incluido el mixin Comparable

Public Class Methods

new(no,pr,ca,li,gei,te) click to toggle source

Se asigna el nombre del alimento junto con su información nutricional e impacto ambiental

# File lib/feeding/alimento.rb, line 16
def initialize(no,pr,ca,li,gei,te)
        @no = no
        @pr = pr
        @ca = ca
        @li = li
        @gei = gei
        @te = te
end

Public Instance Methods

<=>(other) click to toggle source

Se define para incluir el mixin comparable tomando como valor para la comparación la cantidad de kcalorías que posee el alimento

# File lib/feeding/alimento.rb, line 86
def <=>(other)
        kcal <=> other.kcal
end
carbohidratos() click to toggle source

Devuelve la cantidad de carbohidratos que posee

# File lib/feeding/alimento.rb, line 36
def carbohidratos
        @ca
end
gases() click to toggle source

Devuelve la cantidad de gases que emite anualmente

# File lib/feeding/alimento.rb, line 46
def gases 
        @gei
end
impacto(gr, alimento1,a1gr, alimento2,a2gr, alimento3,a3gr, alimento4,a4gr) click to toggle source

Devuelve el impacto ambiental diario que genera la alimentación de una persona adulta

# File lib/feeding/alimento.rb, line 66
def impacto(gr, alimento1,a1gr, alimento2,a2gr, alimento3,a3gr, alimento4,a4gr)
        v_impacto = []

        v_impacto[0] = (porcion_gases(gr) + alimento1.porcion_gases(a1gr) + alimento2.porcion_gases(a2gr) + alimento3.porcion_gases(a3gr) + alimento4.porcion_gases(a4gr)).round(2)
        v_impacto[1] = (porcion_terreno(gr) + alimento1.porcion_terreno(a1gr) + alimento2.porcion_terreno(a2gr) + alimento3.porcion_terreno(a3gr) + alimento4.porcion_terreno(a4gr)).round(2)

        v_impacto.to_s
end
kcal() click to toggle source

Devuelve la cantidad de kcalorías que aporta

# File lib/feeding/alimento.rb, line 61
def kcal 
        (@pr * 4 + @ca * 4 + @li * 9).round(2)
end
lipidos() click to toggle source

Devuelve la cantidad de lipidos que posee

# File lib/feeding/alimento.rb, line 41
def lipidos
        @li
end
name() click to toggle source

Devuelve el nombre del alimento

# File lib/feeding/alimento.rb, line 26
def name
        @no
end
porcion_gases(gramos) click to toggle source

Calcula la cantidad de gases que emite cierta cantidad de gramos del alimento

# File lib/feeding/alimento.rb, line 76
def porcion_gases(gramos)
        gases = ((gramos * @gei) / 1000).round(2)
end
porcion_terreno(gramos) click to toggle source

Calcula la cantidad de terreno que utiliza cierta cantidad de gramos del alimento para su producción

# File lib/feeding/alimento.rb, line 81
def porcion_terreno(gramos)
        metros = ((gramos * @te) / 1000).round(2)
end
proteina() click to toggle source

Devuelve la cantidad de proteínas que posee

# File lib/feeding/alimento.rb, line 31
def proteina
        @pr
end
terreno() click to toggle source

Devuelve la cantidad de terreno que usa para su producción

# File lib/feeding/alimento.rb, line 51
def terreno
        @te
end
to_s() click to toggle source

Devuelve el alimento formateado

# File lib/feeding/alimento.rb, line 56
def to_s
        "(#{@no}, #{@pr}, #{@ca}, #{@li}, #{@gei}, #{@te})"
end