Class: Alimentos::Alimento

Inherits:
Object
  • Object
show all
Includes:
Comparable, Enumerable
Defined in:
lib/alimentos.rb

Overview

Encargada de la representacion de un alimento

Author:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, gei, terrain, pro, car, lip) ⇒ Alimento

Da valores a las variables de instacia de la clase

Parameters:

  • name (String)

    Nombre del alimento

  • gei (Float)

    Efectos de gas invernadero del alimento

  • terrain (Float)

    M^2 de terreno

  • pro (Float)

    Proteinas por cada 100 gr

  • car (Float)

    Carbohidratos por cada 100 gr

  • lip (Float)

    Lipidos por cada 100 gr



29
30
31
32
33
34
35
36
# File 'lib/alimentos.rb', line 29

def initialize(name, gei, terrain, pro, car, lip)
  @name = name
  @gei = gei
  @terrain = terrain
  @pro = pro
  @car = car
  @lip = lip
end

Instance Attribute Details

#carObject

Returns the value of attribute car.



17
18
19
# File 'lib/alimentos.rb', line 17

def car
  @car
end

#geiObject

Returns the value of attribute gei.



17
18
19
# File 'lib/alimentos.rb', line 17

def gei
  @gei
end

#lipObject

Returns the value of attribute lip.



17
18
19
# File 'lib/alimentos.rb', line 17

def lip
  @lip
end

#nameObject

Returns the value of attribute name.



17
18
19
# File 'lib/alimentos.rb', line 17

def name
  @name
end

#proObject

Returns the value of attribute pro.



17
18
19
# File 'lib/alimentos.rb', line 17

def pro
  @pro
end

#terrainObject

Returns the value of attribute terrain.



17
18
19
# File 'lib/alimentos.rb', line 17

def terrain
  @terrain
end

Instance Method Details

#ambientFloat

Calcula el impacto ambiental de un alimento

Returns:

  • (Float)

    Gases de efecto inverdero + Terreno



61
62
63
# File 'lib/alimentos.rb', line 61

def ambient
  (@gei + @terrain).round(2)
end

#energiFloat

Calcula las calorias de un alimento

Returns:

  • (Float)

    (Proteinas + Carbohidratos) * 4 + Lipidos * 9



52
53
54
# File 'lib/alimentos.rb', line 52

def energi
  (@pro * 4 + @car * 4 + @lip * 9).round(2)
end

#impactMen(x) ⇒ [Float,Float]

Calcula el impacto sobre la dieta diaria nesesaria para un hombre de X gramos del alimento

Parameters:

  • x (Float)

    Cantidad de gramos del alimento a calcular

Returns:

  • ([Float,Float])

    Las calorias y las proteinas diarias



72
73
74
# File 'lib/alimentos.rb', line 72

def impactMen(x)
  [((energi / 3000) * x / 100).round(2), ((@pro / 54) * x / 100).round(2)]
end

#impactWom(x) ⇒ [Float,Float]

Calcula el impacto sobre la dieta diaria nesesaria para una mujer de X gramos del alimento

Parameters:

  • x (Float)

    Cantidad de gramos del alimento a calcular

Returns:

  • ([Float,Float])

    Las calorias y las proteinas diarias



83
84
85
# File 'lib/alimentos.rb', line 83

def impactWom(x)
  [((energi / 2300) * x / 100).round(2), ((@pro / 41) * x / 100).round(2)]
end

#to_sString

Formato del alimento a string

Returns:

  • (String)

    String con el formato para la representacion de un alimento



43
44
45
# File 'lib/alimentos.rb', line 43

def to_s
  "#{@name}, #{@gei}, #{terrain}"
end