Class: Plato
Overview
- Author
-
Eduardo Estévez Rodríguez ([email protected])
- Copyright
-
Cretive Commons
- License
-
Distributes under the same terms as Ruby
Direct Known Subclasses
Instance Attribute Summary collapse
-
#alimentos ⇒ Object
readonly
Se incluye el mixin Comparable.
-
#gramos ⇒ Object
readonly
Se incluye el mixin Comparable.
-
#nombre ⇒ Object
readonly
Se incluye el mixin Comparable.
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Se define para incluir el mixin Comparable Se toma como valor para la comparación las kcalorías del plato.
-
#get_alimentos ⇒ Object
Devuelve el conjunto de alimentos que forman el plato.
-
#get_cbh ⇒ Object
Devuelve la cantidad de carbohidratos que posee el plato.
-
#get_gramos ⇒ Object
Devuelve el conjunto de gramos que forman los alimentos del plato.
-
#get_kcal ⇒ Object
Devuelve la cantidad de kcalorías que posee el plato.
-
#get_lpd ⇒ Object
Devuelve la cantidad de lípidos que posee el plato.
-
#get_nombre ⇒ Object
Devuelve el nombre del plato.
-
#get_prt ⇒ Object
Devuelve la cantidad de proteínas que posee el plato.
-
#initialize(nombre, alimentos, gramos) ⇒ Plato
constructor
Se asigna el nombre del plato, los alimentos y la cantidad de cada alimento en gramos.
-
#to_s ⇒ Object
Devuelve el plato formateado.
Constructor Details
#initialize(nombre, alimentos, gramos) ⇒ Plato
Se asigna el nombre del plato, los alimentos y la cantidad de cada alimento en gramos
15 16 17 18 19 |
# File 'lib/feeding/plato.rb', line 15 def initialize(nombre, alimentos, gramos) @nombre = nombre @alimentos = alimentos @gramos = gramos end |
Instance Attribute Details
#alimentos ⇒ Object (readonly)
Se incluye el mixin Comparable
11 12 13 |
# File 'lib/feeding/plato.rb', line 11 def alimentos @alimentos end |
#gramos ⇒ Object (readonly)
Se incluye el mixin Comparable
11 12 13 |
# File 'lib/feeding/plato.rb', line 11 def gramos @gramos end |
#nombre ⇒ Object (readonly)
Se incluye el mixin Comparable
11 12 13 |
# File 'lib/feeding/plato.rb', line 11 def nombre @nombre end |
Instance Method Details
#<=>(other) ⇒ Object
Se define para incluir el mixin Comparable Se toma como valor para la comparación las kcalorías del plato
101 102 103 |
# File 'lib/feeding/plato.rb', line 101 def <=>(other) get_kcal <=> other.get_kcal end |
#get_alimentos ⇒ Object
Devuelve el conjunto de alimentos que forman el plato
27 28 29 |
# File 'lib/feeding/plato.rb', line 27 def get_alimentos @alimentos end |
#get_cbh ⇒ Object
Devuelve la cantidad de carbohidratos que posee el plato
52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/feeding/plato.rb', line 52 def get_cbh aux_ali = @alimentos.get_head() aux_gr = @gramos.get_head() carbohi_t = 0 gramos_t = 0 while !aux_ali.nil? carbohi_t += (aux_ali[:value].carbohidratos * aux_gr[:value]) / 100 gramos_t += aux_gr[:value] aux_ali = aux_ali[:next] aux_gr = aux_gr[:next] end ((carbohi_t / gramos_t) * 100).round(2) end |
#get_gramos ⇒ Object
Devuelve el conjunto de gramos que forman los alimentos del plato
32 33 34 |
# File 'lib/feeding/plato.rb', line 32 def get_gramos @gramos end |
#get_kcal ⇒ Object
Devuelve la cantidad de kcalorías que posee el plato
82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/feeding/plato.rb', line 82 def get_kcal aux = @alimentos.get_head() aux_gr = @gramos.get_head() kcal = 0 while !aux.nil? kcal += (aux_gr[:value] / 100) * (aux[:value].proteina * 4 + aux[:value].carbohidratos * 4 + aux[:value].lipidos * 9).round(2) aux = aux[:next] aux_gr = aux_gr[:next] end kcal.round(2) end |
#get_lpd ⇒ Object
Devuelve la cantidad de lípidos que posee el plato
67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/feeding/plato.rb', line 67 def get_lpd aux_ali = @alimentos.get_head() aux_gr = @gramos.get_head() lipidos_t = 0 gramos_t = 0 while !aux_ali.nil? lipidos_t += (aux_ali[:value].lipidos * aux_gr[:value]) / 100 gramos_t += aux_gr[:value] aux_ali = aux_ali[:next] aux_gr = aux_gr[:next] end ((lipidos_t / gramos_t) * 100).round(2) end |
#get_nombre ⇒ Object
Devuelve el nombre del plato
22 23 24 |
# File 'lib/feeding/plato.rb', line 22 def get_nombre @nombre end |
#get_prt ⇒ Object
Devuelve la cantidad de proteínas que posee el plato
37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/feeding/plato.rb', line 37 def get_prt aux_ali = @alimentos.get_head() aux_gr = @gramos.get_head() proteinas_t = 0 gramos_t = 0 while !aux_ali.nil? proteinas_t += (aux_ali[:value].proteina * aux_gr[:value]) / 100 gramos_t += aux_gr[:value] aux_ali = aux_ali[:next] aux_gr = aux_gr[:next] end ((proteinas_t / gramos_t) * 100).round(2) end |
#to_s ⇒ Object
Devuelve el plato formateado
95 96 97 |
# File 'lib/feeding/plato.rb', line 95 def to_s "(#{@nombre}, #{@alimentos.show_list}, (#{@gramos.show_list}))" end |