Class: Einutricional::Etiqueta

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/einutricional/etiqueta.rb

Overview

Almacena los datos nutricionales de un alimento

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(nombre, grasas, grasas_sat, grasas_monosat, grasas_polisat, hidratos, azucares, polialcoholes, almidon, fibra, proteinas, sal, vitaminas, minerales) ⇒ Etiqueta

Note:

el resto de los parámetros son float

Constructor que recibe los datos de cada uno de los parametros alimenticios del alimento en cuestión.

Parameters:

  • nombre (String)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 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

Instance Attribute Details

#almidonObject

Returns the value of attribute almidon.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def almidon
  @almidon
end

#azucaresObject

Returns the value of attribute azucares.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def azucares
  @azucares
end

#fibraObject

Returns the value of attribute fibra.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def fibra
  @fibra
end

#grasasObject

Returns the value of attribute grasas.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def grasas
  @grasas
end

#grasas_monosatObject

Returns the value of attribute grasas_monosat.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def grasas_monosat
  @grasas_monosat
end

#grasas_polisatObject

Returns the value of attribute grasas_polisat.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def grasas_polisat
  @grasas_polisat
end

#grasas_satObject

Returns the value of attribute grasas_sat.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def grasas_sat
  @grasas_sat
end

#hidratosObject

Returns the value of attribute hidratos.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def hidratos
  @hidratos
end

#mineralesObject

Returns the value of attribute minerales.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def minerales
  @minerales
end

#nombreObject

Returns the value of attribute nombre.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def nombre
  @nombre
end

#polialcoholesObject

Returns the value of attribute polialcoholes.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def polialcoholes
  @polialcoholes
end

#proteinasObject

Returns the value of attribute proteinas.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def proteinas
  @proteinas
end

#salObject

Returns the value of attribute sal.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def sal
  @sal
end

#vitaminasObject

Returns the value of attribute vitaminas.



5
6
7
# File 'lib/einutricional/etiqueta.rb', line 5

def vitaminas
  @vitaminas
end

Instance Method Details

#<=>(other) ⇒ Fixnum

Operador de comparación

Returns:

  • (Fixnum)

    0 si VE1 == VE2, -1 si VE1 < VE2 y 1 si VE1 > VE2



32
33
34
# File 'lib/einutricional/etiqueta.rb', line 32

def <=>(other)
  valor_energetico <=> other.valor_energetico
end

#irString

Ingesta de referencia

Returns:

  • (String)

    la ingesta de referencia de la etiqueta con los porcentajes calculados



91
92
93
94
95
96
97
98
99
100
# 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_sString

Imprime la etiqueta

Returns:

  • (String)

    los valores de la etiqueta



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# 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') ⇒ Fixnum

Calcula el valor energético del alimento

Parameters:

  • medida (String) (defaults to: 'cal')

    ‘cal’ si calorias (predeterminado), ‘kj’ si kilojulios.

Returns:

  • (Fixnum)

    valor energético



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# 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