class Einutricional::Etiqueta

Almacena los datos nutricionales de un alimento

Attributes

almidon[RW]
azucares[RW]
fibra[RW]
grasas[RW]
grasas_monosat[RW]
grasas_polisat[RW]
grasas_sat[RW]
hidratos[RW]
minerales[RW]
nombre[RW]
polialcoholes[RW]
proteinas[RW]
sal[RW]
vitaminas[RW]

Public Class Methods

new(nombre, grasas, grasas_sat, grasas_monosat, grasas_polisat, hidratos, azucares, polialcoholes, almidon, fibra, proteinas, sal, vitaminas, minerales) click to toggle source

Constructor que recibe los datos de cada uno de los parametros alimenticios del alimento en cuestión. @param nombre [String] @note el resto de los parámetros son float

# File lib/einutricional/etiqueta.rb, line 12
def initialize(nombre, grasas, grasas_sat, grasas_monosat, grasas_polisat,
               hidratos, azucares, polialcoholes, almidon, fibra, proteinas, sal, vitaminas, minerales)
  @nombre = nombre
  @grasas = grasas
  @grasas_sat = grasas_sat
  @grasas_monosat = grasas_monosat
  @grasas_polisat = grasas_polisat
  @hidratos = hidratos
  @azucares = azucares
  @polialcoholes = polialcoholes
  @almidon = almidon
  @fibra = fibra
  @proteinas = proteinas
  @sal = sal
  @vitaminas = vitaminas
  @minerales = minerales
end

Public Instance Methods

<=>(other) click to toggle source

Operador de comparación @return [Fixnum] 0 si VE1 == VE2, -1 si VE1 < VE2 y 1 si VE1 > VE2

# File lib/einutricional/etiqueta.rb, line 32
def <=>(other)
  valor_energetico <=> other.valor_energetico
end
ir() click to toggle source

Ingesta de referencia @return [String] la ingesta de referencia de la etiqueta con los porcentajes calculados

# File lib/einutricional/etiqueta.rb, line 91
    def ir
      %(Ingesta de referencia con respecto a 100g
Valor energético:    #{((valor_energetico / 2000.0) * 100.0).truncate(2)}%
Grasa total:         #{((@grasas      / 70.0)   * 100.0).truncate(2)}%
Acidos grasos sat.:  #{((@grasas_sat  / 20.0)   * 100.0).truncate(2)}%
Hidratos de carbono: #{((@hidratos    / 260.0)  * 100.0).truncate(2)}%
Azúcares:            #{((@azucares    / 90.0)   * 100.0).truncate(2)}%
Proteínas:           #{((@proteinas   / 50.0)   * 100.0).truncate(2)}%
Sal:                 #{((@sal         / 6.0)    * 100.0).truncate(2)}%)
    end
to_s() click to toggle source

Imprime la etiqueta @return [String] los valores de la etiqueta

# File lib/einutricional/etiqueta.rb, line 69
    def to_s
      %(Denominación: #{@nombre}
Valor energético.......#{valor_energetico} cal
Grasas.................#{@grasas}
de las cuales
  saturadas............#{@grasas_sat}
  monosaturadas........#{@grasas_monosat}
  poliinsaturadas......#{@grasas_polisat}
Hidratos...............#{@hidratos}
de los cuales
  azucares.............#{@azucares}
  polialcoholes........#{@polialcoholes}
  almidon..............#{@almidon}
Fibra..................#{@fibra}
Proteinas..............#{@proteinas}
Sal....................#{@sal}
Vitaminas..............#{@vitaminas}
Minerales..............#{@minerales})
    end
valor_energetico(medida = 'cal') click to toggle source

Calcula el valor energético del alimento @param medida [String] 'cal' si calorias (predeterminado), 'kj' si kilojulios. @return [Fixnum] valor energético

# File lib/einutricional/etiqueta.rb, line 39
def valor_energetico(medida = 'cal')
  if medida == 'cal'
    ve = 0.0
    ve += @grasas * 9
    ve += (@hidratos - @azucares - @polialcoholes - @almidon) * 4
    ve += @azucares * 4 # TODO: ¿cual es el factor de conversión del azucar?)
    ve += @polialcoholes * 2.4
    ve += @almidon * 4
    ve += @fibra * 2
    ve += @proteinas * 4
    ve += @sal * 6
    ve.truncate(0)
  elsif medida == 'kj'
    ve = 0.0
    ve += @grasas * 37
    ve += (@hidratos - @azucares - @polialcoholes - @almidon) * 17
    ve += @azucares * 17 # TODO: ¿cual es el factor de conversión del azucar?)
    ve += @polialcoholes * 10
    ve += @almidon * 17
    ve += @fibra * 8
    ve += @proteinas * 17
    ve += @sal * 25
    ve.truncate(0)
  else
    raise 'No se ha pasado el argumento correcto a la función.'
  end
end