Class: Plato
Direct Known Subclasses
Instance Attribute Summary collapse
-
#conjuntoAlimentos ⇒ Object
Los atributos son de lectura y escritura.
-
#conjuntoCantidades ⇒ Object
Los atributos son de lectura y escritura.
-
#nombrePlato ⇒ Object
Los atributos son de lectura y escritura.
Instance Method Summary collapse
-
#<=>(another) ⇒ Object
Sobreescritura de la funcion <=> de la clase Comparable para comparar dos elementos.
- #alimento(a = {}) ⇒ Object
-
#conjuntoPorcentaje ⇒ Double
Funcion auxiliar de #porProteinas, #porLipidos y #porCarbohidratos.
-
#initialize(aux, &block) ⇒ Plato
constructor
A new instance of Plato.
- #nombre(nombre) ⇒ Object
-
#porCarbohidratos ⇒ Double
% de carbohidratos del plato respecto a otros componentes.
-
#porLipidos ⇒ Double
% de lipidos del plato respecto a otros componentes.
-
#porProteinas ⇒ Double
% de proteinas del plato respecto a otros componentes.
-
#to_s ⇒ String
Foramte el plato a una cadena de texto legible.
-
#valorCaloricoTotal ⇒ Double
Calor calórico del plato.
Constructor Details
#initialize(aux, &block) ⇒ Plato
Returns a new instance of Plato.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/practica6/platos.rb', line 17 def initialize(aux, &block) #@nombrePlato= nombrePlato @conjuntoAlimentos= [] @conjuntoCantidades= [] if block_given? if block.arity == 1 yield self else instance_eval(&block) end end end |
Instance Attribute Details
#conjuntoAlimentos ⇒ Object
Los atributos son de lectura y escritura.
8 9 10 |
# File 'lib/practica6/platos.rb', line 8 def conjuntoAlimentos @conjuntoAlimentos end |
#conjuntoCantidades ⇒ Object
Los atributos son de lectura y escritura.
8 9 10 |
# File 'lib/practica6/platos.rb', line 8 def conjuntoCantidades @conjuntoCantidades end |
#nombrePlato ⇒ Object
Los atributos son de lectura y escritura.
8 9 10 |
# File 'lib/practica6/platos.rb', line 8 def nombrePlato @nombrePlato end |
Instance Method Details
#<=>(another) ⇒ Object
Sobreescritura de la funcion <=> de la clase Comparable para comparar dos elementos
127 128 129 130 131 132 133 |
# File 'lib/practica6/platos.rb', line 127 def <=>(another) if another.class.ancestors.include?Plato aux1= porProteinas aux2= another.porProteinas aux1 <=> aux2 end end |
#alimento(a = {}) ⇒ Object
37 38 39 40 |
# File 'lib/practica6/platos.rb', line 37 def alimento (a= {}) @conjuntoAlimentos<< a[:descripcion] @conjuntoCantidades<< a[:gramos] end |
#conjuntoPorcentaje ⇒ Double
Funcion auxiliar de #porProteinas, #porLipidos y #porCarbohidratos.
47 48 49 50 51 52 53 54 55 |
# File 'lib/practica6/platos.rb', line 47 def conjuntoPorcentaje aux= 0.0.to_d conjuntoAlimentos.size.times do |i| aux+= (conjuntoAlimentos[i].proteinas.to_d)* (conjuntoCantidades[i].to_d/1000.0) aux+= (conjuntoAlimentos[i].carbohidratos.to_d)* (conjuntoCantidades[i].to_d/1000.0) aux+= (conjuntoAlimentos[i].lipidos.to_d)* (conjuntoCantidades[i].to_d/1000.0) end return aux end |
#nombre(nombre) ⇒ Object
33 34 35 |
# File 'lib/practica6/platos.rb', line 33 def nombre (nombre) @nombrePlato= nombre end |
#porCarbohidratos ⇒ Double
% de carbohidratos del plato respecto a otros componentes.
88 89 90 91 92 93 94 |
# File 'lib/practica6/platos.rb', line 88 def porCarbohidratos auxCarbohidratos= 0.0.to_d conjuntoAlimentos.size.times do |i| auxCarbohidratos+= (conjuntoAlimentos[i].carbohidratos.to_d)* (conjuntoCantidades[i].to_d/1000.0) end return ((auxCarbohidratos/ conjuntoPorcentaje)* 100) end |
#porLipidos ⇒ Double
% de lipidos del plato respecto a otros componentes.
75 76 77 78 79 80 81 |
# File 'lib/practica6/platos.rb', line 75 def porLipidos auxLipidos= 0.0.to_d conjuntoAlimentos.size.times do |i| auxLipidos+= (conjuntoAlimentos[i].lipidos.to_d)* (conjuntoCantidades[i].to_d/1000.0) end return ((auxLipidos/ conjuntoPorcentaje)* 100) end |
#porProteinas ⇒ Double
% de proteinas del plato respecto a otros componentes.
62 63 64 65 66 67 68 |
# File 'lib/practica6/platos.rb', line 62 def porProteinas auxProteinas= 0.0.to_d conjuntoAlimentos.size.times do |i| auxProteinas+= (conjuntoAlimentos[i].proteinas.to_d)* (conjuntoCantidades[i].to_d/1000.0) end return ((auxProteinas/ conjuntoPorcentaje)* 100) end |
#to_s ⇒ String
Foramte el plato a una cadena de texto legible.
114 115 116 117 118 119 120 |
# File 'lib/practica6/platos.rb', line 114 def to_s string= "#{@nombrePlato}:\n" conjuntoAlimentos.size.times do |i| string+= "#{conjuntoAlimentos[i].nombre}, #{conjuntoCantidades[i]};\n" end return string end |
#valorCaloricoTotal ⇒ Double
Calor calórico del plato.
101 102 103 104 105 106 107 |
# File 'lib/practica6/platos.rb', line 101 def valorCaloricoTotal auxVCT= 0.0.to_d conjuntoAlimentos.size.times do |i| auxVCT+= (conjuntoAlimentos[i].kilocalorias.to_d)* (conjuntoCantidades[i].to_d/1000.0) end return auxVCT end |