Class: Etiqueta

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(valor_energetico, grasas, hidratos_carbono, fibra_alimentaria, proteinas, sal, vitamina, porciones, cantidad_porciones, tamanio_porciones) ⇒ Etiqueta

Returns retorna una nueva instancia de Etiqueta.

Parameters:

  • valor_energetico (Array)

    expresado en kJ y en kCal

  • grasas (Array)

    donde tenemos las grasas saturadas, monoinsaturadas y poliinsaturadas.

  • hidratos_carbono (Array)

    donde están contenidos azúcares, polialcoles y el almidón.

  • fibra_alimentaria (Number)
  • proteinas (Number)
  • sal (Number)
  • vitamina (Number)
  • porciones (Bool)

    indica si el producto viene o no en porciones

  • cantidad_porciones (Number)
  • tamanio_porciones (Number)


23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/practica6/etiqueta.rb', line 23

def initialize(valor_energetico, grasas, hidratos_carbono, fibra_alimentaria, proteinas, sal, vitamina, porciones , cantidad_porciones, tamanio_porciones)
  @valor_energetico = valor_energetico
  @grasas = grasas
  @hidratos_carbono = hidratos_carbono
  @fibra_alimentaria = fibra_alimentaria
  @proteinas = proteinas
  @sal = sal
  @vitamina = vitamina
  @porciones = porciones
  @cantidad_porciones = cantidad_porciones
  @tamanio_porciones = tamanio_porciones
end

Instance Attribute Details

#cantidad_porcionesObject (readonly)

Returns the value of attribute cantidad_porciones.



3
4
5
# File 'lib/practica6/etiqueta.rb', line 3

def cantidad_porciones
  @cantidad_porciones
end

#fibra_alimentariaObject (readonly)

Returns the value of attribute fibra_alimentaria.



3
4
5
# File 'lib/practica6/etiqueta.rb', line 3

def fibra_alimentaria
  @fibra_alimentaria
end

#grasasObject (readonly)

Returns the value of attribute grasas.



3
4
5
# File 'lib/practica6/etiqueta.rb', line 3

def grasas
  @grasas
end

#hidratos_carbonoObject (readonly)

Returns the value of attribute hidratos_carbono.



3
4
5
# File 'lib/practica6/etiqueta.rb', line 3

def hidratos_carbono
  @hidratos_carbono
end

#porcionesObject (readonly)

Returns the value of attribute porciones.



3
4
5
# File 'lib/practica6/etiqueta.rb', line 3

def porciones
  @porciones
end

#proteinasObject (readonly)

Returns the value of attribute proteinas.



3
4
5
# File 'lib/practica6/etiqueta.rb', line 3

def proteinas
  @proteinas
end

#salObject (readonly)

Returns the value of attribute sal.



3
4
5
# File 'lib/practica6/etiqueta.rb', line 3

def sal
  @sal
end

#tamanio_porcionesObject (readonly)

Returns the value of attribute tamanio_porciones.



3
4
5
# File 'lib/practica6/etiqueta.rb', line 3

def tamanio_porciones
  @tamanio_porciones
end

#valor_energeticoObject (readonly)

Returns the value of attribute valor_energetico.



3
4
5
# File 'lib/practica6/etiqueta.rb', line 3

def valor_energetico
  @valor_energetico
end

#vitaminaObject (readonly)

Returns the value of attribute vitamina.



3
4
5
# File 'lib/practica6/etiqueta.rb', line 3

def vitamina
  @vitamina
end

Instance Method Details

#<=>(etiqueto) ⇒ Number

Returns retorna -1,0 o 1.

Parameters:

  • recibe (Etiqueta)

    como parámetro otra instancia de la clase Etiqueta con la que va a compararse

Returns:

  • (Number)

    retorna -1,0 o 1.



7
8
9
# File 'lib/practica6/etiqueta.rb', line 7

def <=>(etiqueto)
  @valor_energetico <=> etiqueto.valor_energetico
end

#energia_almidonNumber

Returns retorna la energía que aporta el almidón.

Returns:

  • (Number)

    retorna la energía que aporta el almidón.



96
97
98
99
100
101
102
# File 'lib/practica6/etiqueta.rb', line 96

def energia_almidon()
  hidratos = @hidratos_carbono
  energia_total = []
  energia_total.push((hidratos[2] * 17).round(2))
  energia_total.push((hidratos[2] * 4).round(2))
  energia_total
end

#energia_azucaresNumber

Returns retorna la energía que aportan los azúcares.

Returns:

  • (Number)

    retorna la energía que aportan los azúcares.



78
79
80
81
82
83
84
# File 'lib/practica6/etiqueta.rb', line 78

def energia_azucares()
  hidratos = @hidratos_carbono
  energia_total = []
  energia_total.push((hidratos[0] * 17).round(2))
  energia_total.push((hidratos[0] * 4).round(2))
  energia_total
end

#energia_fibraNumber

Returns retorna la energía que aporta la fibra.

Returns:

  • (Number)

    retorna la energía que aporta la fibra.



105
106
107
108
109
110
111
# File 'lib/practica6/etiqueta.rb', line 105

def energia_fibra()
  fibra_alimentaria = @fibra_alimentaria
  energia_total = []
  energia_total.push((fibra_alimentaria * 8).round(2))
  energia_total.push((fibra_alimentaria * 2).round(2))
  energia_total
end

#energia_g_monoinsaturadasNumber

Returns retorna la energía que aportan las grasas monoinsaturadas.

Returns:

  • (Number)

    retorna la energía que aportan las grasas monoinsaturadas.



60
61
62
63
64
65
66
# File 'lib/practica6/etiqueta.rb', line 60

def energia_g_monoinsaturadas()
  grasas = @grasas
  energia_total = []
  energia_total.push((grasas[1] * 37).round(2))
  energia_total.push((grasas[1] * 9).round(2))
  energia_total
end

#energia_g_polinsaturadasNumber

Returns retorna la energía que aportan las grasas poliinsaturadas.

Returns:

  • (Number)

    retorna la energía que aportan las grasas poliinsaturadas.



69
70
71
72
73
74
75
# File 'lib/practica6/etiqueta.rb', line 69

def energia_g_polinsaturadas()
  grasas = @grasas
  energia_total = []
  energia_total.push((grasas[2] * 37).round(2))
  energia_total.push((grasas[2] * 9).round(2))
  energia_total
end

#energia_g_saturadasNumber

Returns retorna la energía que aportan las grasas saturadas.

Returns:

  • (Number)

    retorna la energía que aportan las grasas saturadas.



51
52
53
54
55
56
57
# File 'lib/practica6/etiqueta.rb', line 51

def energia_g_saturadas()
  grasas = @grasas
  energia_total = []
  energia_total.push((grasas[0] * 37).round(2))
  energia_total.push((grasas[0] * 9).round(2))
  energia_total
end

#energia_polialcolesNumber

Returns retorna la energía que aportan los polialcoles.

Returns:

  • (Number)

    retorna la energía que aportan los polialcoles.



87
88
89
90
91
92
93
# File 'lib/practica6/etiqueta.rb', line 87

def energia_polialcoles()
  hidratos = @hidratos_carbono
  energia_total = []
  energia_total.push((hidratos[1] * 10).round(2))
  energia_total.push((hidratos[1] * 2.5).round(2))
  energia_total
end

#energia_proteinasNumber

Returns retorna la energía que aportan las proteínas.

Returns:

  • (Number)

    retorna la energía que aportan las proteínas.



114
115
116
117
118
119
120
# File 'lib/practica6/etiqueta.rb', line 114

def energia_proteinas()
  proteinas = @proteinas
  energia_total = []
  energia_total.push((proteinas * 17).round(2))
  energia_total.push((proteinas * 4).round(2))
  energia_total
end

#energia_salNumber

Returns retorna la energía que aporta la sal.

Returns:

  • (Number)

    retorna la energía que aporta la sal.



123
124
125
126
127
128
129
# File 'lib/practica6/etiqueta.rb', line 123

def energia_sal()
  sal = @sal
  energia_total = []
  energia_total.push((sal * 25).round(2))
  energia_total.push((sal * 6).round(2))
  energia_total
end

#to_sString

Returns retorna una cadena con la información de la etiqueta.

Returns:

  • (String)

    retorna una cadena con la información de la etiqueta.



160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# File 'lib/practica6/etiqueta.rb', line 160

def to_s
  s = "Valor energético por 100g o 100ml de producto .... #{@valor_energetico[0]} kcal / #{@valor_energetico[1]} kj
  Grasas ........ #{total_grasas} gr
  de las cuales
    saturadas .......... #{@grasas[0]} gr
    monoinsaturadas .... #{@grasas[1]} gr
    polinsaturadas ..... #{@grasas[2]} gr
  Hidratos ............. #{total_hidratos} gr
  de los cuales
    azucares ........... #{@hidratos_carbono[0]} gr
    polialcoles ........ #{@hidratos_carbono[1]} gr
    almidon ............ #{@hidratos_carbono[2]} gr
  Fibra alimentaria .... #{@fibra_alimentaria} gr
  Proteínas ............ #{@proteinas} gr
  Sal .................. #{@sal} gr"

  if @porciones == true
   s << "
  Cantidad porciones ... #{@cantidad_porciones} uds
  Tamaño porciones ..... #{@tamanio_porciones} gr"
  end

  s << "
  "

end

#total_grasasNumber

Returns retorna la suma de las grasas.

Returns:

  • (Number)

    retorna la suma de las grasas.



37
38
39
40
41
# File 'lib/practica6/etiqueta.rb', line 37

def total_grasas()
  sum = 0
  @grasas.each { |a| sum+= a }
  sum
end

#total_hidratosNumber

Returns retorna la suma de los hidratos de carbono.

Returns:

  • (Number)

    retorna la suma de los hidratos de carbono.



44
45
46
47
48
# File 'lib/practica6/etiqueta.rb', line 44

def total_hidratos()
  sum = 0
  @hidratos_carbono.each { |a| sum+= a}
  sum
end

#valor_energetico_totalNumber

Returns retorna el valor energético total.

Returns:

  • (Number)

    retorna el valor energético total.



132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/practica6/etiqueta.rb', line 132

def valor_energetico_total()
  kj = []
  sum = 0
  sum += self.energia_g_saturadas()[0]
  sum += self.energia_g_monoinsaturadas()[0]
  sum += self.energia_g_polinsaturadas()[0]
  sum += self.energia_azucares()[0]
  sum += self.energia_polialcoles()[0]
  sum += self.energia_almidon()[0]
  sum += self.energia_fibra()[0]
  sum += self.energia_proteinas()[0]
  sum += self.energia_sal()[0]
  kj.push(sum.round(2))
  sum = 0
  sum += self.energia_g_saturadas()[1]
  sum += self.energia_g_monoinsaturadas()[1]
  sum += self.energia_g_polinsaturadas()[1]
  sum += self.energia_azucares()[1]
  sum += self.energia_polialcoles()[1]
  sum += self.energia_almidon()[1]
  sum += self.energia_fibra()[1]
  sum += self.energia_proteinas()[1]
  sum += self.energia_sal()[1]
  kj.push(sum.round(2))
  kj
end