Class: Plato
Overview
plato.rb
- Autor
-
Himar Manuel Barquín Carrasco
- Web
Descripción
Clase que contiene una lista de alimentos, con sus cantidades. Además, nos informa del porcentaje de proteínas, lípidos y carbohidratos en proporción a las kilocalorías totales del plato.
Métodos
-
to_s
-
calc_vct
-
calc_perc_proteins
-
calc_perc_lipids
-
calc_perc_carbohydrates
-
<=>
Direct Known Subclasses
Instance Attribute Summary collapse
-
#food ⇒ Object
readonly
Returns the value of attribute food.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#percentage_carbohydrates ⇒ Object
readonly
Returns the value of attribute percentage_carbohydrates.
-
#percentage_lipids ⇒ Object
readonly
Returns the value of attribute percentage_lipids.
-
#percentage_proteins ⇒ Object
readonly
Returns the value of attribute percentage_proteins.
-
#quantities ⇒ Object
readonly
Returns the value of attribute quantities.
-
#vct ⇒ Object
readonly
Returns the value of attribute vct.
Instance Method Summary collapse
-
#<=>(another) ⇒ Object
- Nos permite comparar platos por su Valor Calórico Total Parámetros
- another: Otro plato que se compara con el invocante Devuelve
-
‘true’ si la comparación es verdadera.
-
#calc_perc_carbohydrates ⇒ Object
- Calcula el porcentaje de carbohidratos del plato Devuelve
-
Porcentaje de carbohidratos.
-
#calc_perc_lipids ⇒ Object
- Calcula el porcentaje de lípidos del plato Devuelve
-
Porcentaje de lípidos.
-
#calc_perc_proteins ⇒ Object
- Calcula el porcetaje de proteínas del plato Devuelve
-
Porcentaje de proteínas.
-
#calc_vct ⇒ Object
- Calcula el Valor Calórico Total del plato Devuelve
-
Valor Calórico Total del plato.
-
#initialize(name, alimentos = [], gramos = []) ⇒ Plato
constructor
- Constructor de la clase Plato Parámetros
-
name: Nombre del plato * alimentos: Conjunto de alimentos que componen el plato * gramos: Cantidades en gramos de cada alimento del plato.
-
-
#to_s ⇒ Object
- Método para imprimir la información del plato Devuelve
-
Cadena de texto con la información del plato.
Constructor Details
#initialize(name, alimentos = [], gramos = []) ⇒ Plato
Constructor de la clase Plato
- Parámetros
-
name: Nombre del plato
-
alimentos: Conjunto de alimentos que componen el plato
-
gramos: Cantidades en gramos de cada alimento del plato
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/tddAlimentos/plato.rb', line 29 def initialize (name, alimentos = [], gramos = []) @name = name @food = List.new @food.insert_more(alimentos) @quantities = List.new @quantities.insert_more(gramos) @vct = calc_vct # Calculamos los porcentajes @percentage_proteins = calc_perc_proteins @percentage_lipids = calc_perc_lipids @percentage_carbohydrates = calc_perc_carbohydrates end |
Instance Attribute Details
#food ⇒ Object (readonly)
Returns the value of attribute food.
22 23 24 |
# File 'lib/tddAlimentos/plato.rb', line 22 def food @food end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
22 23 24 |
# File 'lib/tddAlimentos/plato.rb', line 22 def name @name end |
#percentage_carbohydrates ⇒ Object (readonly)
Returns the value of attribute percentage_carbohydrates.
22 23 24 |
# File 'lib/tddAlimentos/plato.rb', line 22 def percentage_carbohydrates @percentage_carbohydrates end |
#percentage_lipids ⇒ Object (readonly)
Returns the value of attribute percentage_lipids.
22 23 24 |
# File 'lib/tddAlimentos/plato.rb', line 22 def percentage_lipids @percentage_lipids end |
#percentage_proteins ⇒ Object (readonly)
Returns the value of attribute percentage_proteins.
22 23 24 |
# File 'lib/tddAlimentos/plato.rb', line 22 def percentage_proteins @percentage_proteins end |
#quantities ⇒ Object (readonly)
Returns the value of attribute quantities.
22 23 24 |
# File 'lib/tddAlimentos/plato.rb', line 22 def quantities @quantities end |
#vct ⇒ Object (readonly)
Returns the value of attribute vct.
22 23 24 |
# File 'lib/tddAlimentos/plato.rb', line 22 def vct @vct end |
Instance Method Details
#<=>(another) ⇒ Object
Nos permite comparar platos por su Valor Calórico Total
- Parámetros
-
another: Otro plato que se compara con el invocante
- Devuelve
-
‘true’ si la comparación es verdadera. ‘false’ en otro caso
122 123 124 |
# File 'lib/tddAlimentos/plato.rb', line 122 def <=> (another) self.vct <=> another.vct end |
#calc_perc_carbohydrates ⇒ Object
Calcula el porcentaje de carbohidratos del plato
- Devuelve
-
Porcentaje de carbohidratos
106 107 108 109 110 111 112 113 114 115 |
# File 'lib/tddAlimentos/plato.rb', line 106 def calc_perc_carbohydrates alimentos = @food.collect { |x| x.carbohydrates } gramos = @quantities.collect { |x| x/100.0 } result = 0.0 for i in 0...alimentos.size result += (gramos[i] * alimentos[i]) * 4 end result /= @vct end |
#calc_perc_lipids ⇒ Object
Calcula el porcentaje de lípidos del plato
- Devuelve
-
Porcentaje de lípidos
92 93 94 95 96 97 98 99 100 101 |
# File 'lib/tddAlimentos/plato.rb', line 92 def calc_perc_lipids alimentos = @food.collect { |x| x.lipids } gramos = @quantities.collect { |x| x/100.0 } result = 0.0 for i in 0...alimentos.size result += (gramos[i] * alimentos[i]) * 9 end result /= @vct end |
#calc_perc_proteins ⇒ Object
Calcula el porcetaje de proteínas del plato
- Devuelve
-
Porcentaje de proteínas
78 79 80 81 82 83 84 85 86 87 |
# File 'lib/tddAlimentos/plato.rb', line 78 def calc_perc_proteins alimentos = @food.collect { |x| x.protein } gramos = @quantities.collect { |x| x/100.0 } result = 0.0 for i in 0...alimentos.size result += (gramos[i] * alimentos[i]) * 4 end result /= @vct end |
#calc_vct ⇒ Object
Calcula el Valor Calórico Total del plato
- Devuelve
-
Valor Calórico Total del plato
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/tddAlimentos/plato.rb', line 64 def calc_vct alimentos = @food.collect { |x| x.energetic_value } gramos = @quantities.collect { |x| x/100.0 } result = 0.0 for i in 0...alimentos.size result += (gramos[i] * alimentos[i]) end result end |
#to_s ⇒ Object
Método para imprimir la información del plato
- Devuelve
-
Cadena de texto con la información del plato
49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/tddAlimentos/plato.rb', line 49 def to_s alimentos = @food.collect { |x| x.name } gramos = @quantities.collect { |x| x } result = "" result += "Nombre del plato: #{@name}.\nIngredientes:\n" for i in 0...alimentos.size result += "- #{alimentos[i]} (#{gramos[i]} gr)\n" end result += "Kilocalorias totales: #{self.vct} kcal" end |