Class: DietaDSL
Overview
Clase Dieta
Direct Known Subclasses
Instance Attribute Summary collapse
-
#nombre ⇒ Object
readonly
Constructor de la clase Dieta.
-
#platos ⇒ Object
readonly
Platos de la Dieta.
-
#porcentaje_ingesta ⇒ Object
readonly
Porcentaje de ingesta diaria de la Dieta.
-
#porcentajes ⇒ Object
readonly
Porcentajes de proteínas, grasas e hidratos de carbono de la Dieta.
-
#titulo ⇒ Object
readonly
Título de la Dieta.
-
#vct ⇒ Object
readonly
Valor calórico de la Dieta.
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Método que es necesario definir para poder utilizar el módulo Comparable.
-
#==(other) ⇒ Object
Método para saber si dos dietas son iguales ( se especifica explícitamente en vez de usar el <=> ).
-
#get_desc_plato(i) ⇒ Object
Método que devuelve la descripción de uno de los platos.
-
#get_grasas ⇒ Object
Método que devuelve el porcentaje de grasas de la dieta.
-
#get_hidratos ⇒ Object
Método que devuelve el porcentaje de hidratos de la.
-
#get_ingesta_diaria ⇒ Object
Método que devuelve la ingesta diaria de la Dieta.
-
#get_plato(i) ⇒ Object
Método que devuelve un plato de una dieta.
-
#get_platos ⇒ Object
Método que devuelve los platos de la dieta.
-
#get_proteinas ⇒ Object
Método que devuelve el porcentaje de proteínas de la dieta.
-
#get_titulo ⇒ Object
Método que devuelve el título de la Dieta.
-
#get_vct ⇒ Object
Método que devuelve el VCT.
- #ingesta_(opciones = {}) ⇒ Object
-
#initialize(nombre, &block) ⇒ DietaDSL
constructor
A new instance of DietaDSL.
- #plato_(opciones = {}) ⇒ Object
- #porcentajes_(opciones = {}) ⇒ Object
- #titulo_(name) ⇒ Object
-
#to_s ⇒ Object
Método para imprimir la Dieta.
Constructor Details
#initialize(nombre, &block) ⇒ DietaDSL
Returns a new instance of DietaDSL.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/gema/dieta_dsl.rb', line 17 def initialize(nombre,&block) @nombre = nombre @titulo = "" @porcentaje_ingesta = "" @platos = [] @vct = 0 @porcentajes = [] if block_given? if block.arity == 1 yield self else instance_eval(&block) end end end |
Instance Attribute Details
#nombre ⇒ Object (readonly)
Constructor de la clase Dieta
16 17 18 |
# File 'lib/gema/dieta_dsl.rb', line 16 def nombre @nombre end |
#platos ⇒ Object (readonly)
Platos de la Dieta
10 11 12 |
# File 'lib/gema/dieta_dsl.rb', line 10 def platos @platos end |
#porcentaje_ingesta ⇒ Object (readonly)
Porcentaje de ingesta diaria de la Dieta
8 9 10 |
# File 'lib/gema/dieta_dsl.rb', line 8 def porcentaje_ingesta @porcentaje_ingesta end |
#porcentajes ⇒ Object (readonly)
Porcentajes de proteínas, grasas e hidratos de carbono de la Dieta
14 15 16 |
# File 'lib/gema/dieta_dsl.rb', line 14 def porcentajes @porcentajes end |
#titulo ⇒ Object (readonly)
Título de la Dieta
6 7 8 |
# File 'lib/gema/dieta_dsl.rb', line 6 def titulo @titulo end |
#vct ⇒ Object (readonly)
Valor calórico de la Dieta
12 13 14 |
# File 'lib/gema/dieta_dsl.rb', line 12 def vct @vct end |
Instance Method Details
#<=>(other) ⇒ Object
Método que es necesario definir para poder utilizar el módulo Comparable
41 42 43 44 |
# File 'lib/gema/dieta_dsl.rb', line 41 def <=> (other) vct <=> other.vct end |
#==(other) ⇒ Object
Método para saber si dos dietas son iguales ( se especifica explícitamente en vez de usar el <=> )
35 36 37 38 |
# File 'lib/gema/dieta_dsl.rb', line 35 def == (other) vct == other.vct && porcentajes==other.porcentajes end |
#get_desc_plato(i) ⇒ Object
Método que devuelve la descripción de uno de los platos
61 62 63 |
# File 'lib/gema/dieta_dsl.rb', line 61 def get_desc_plato(i) "#{@platos[i][0]}, #{@platos[i][1]}, #{@platos[i][2]} " end |
#get_grasas ⇒ Object
Método que devuelve el porcentaje de grasas de la dieta
90 91 92 |
# File 'lib/gema/dieta_dsl.rb', line 90 def get_grasas @porcentajes[1] end |
#get_hidratos ⇒ Object
Método que devuelve el porcentaje de hidratos de la
95 96 97 |
# File 'lib/gema/dieta_dsl.rb', line 95 def get_hidratos @porcentajes[2] end |
#get_ingesta_diaria ⇒ Object
Método que devuelve la ingesta diaria de la Dieta
66 67 68 |
# File 'lib/gema/dieta_dsl.rb', line 66 def get_ingesta_diaria @porcentaje_ingesta end |
#get_plato(i) ⇒ Object
Método que devuelve un plato de una dieta
70 71 72 |
# File 'lib/gema/dieta_dsl.rb', line 70 def get_plato(i) @platos[i][0] end |
#get_platos ⇒ Object
Método que devuelve los platos de la dieta
75 76 77 |
# File 'lib/gema/dieta_dsl.rb', line 75 def get_platos @platos end |
#get_proteinas ⇒ Object
Método que devuelve el porcentaje de proteínas de la dieta
85 86 87 |
# File 'lib/gema/dieta_dsl.rb', line 85 def get_proteinas @porcentajes[0] end |
#get_titulo ⇒ Object
Método que devuelve el título de la Dieta
56 57 58 |
# File 'lib/gema/dieta_dsl.rb', line 56 def get_titulo @titulo end |
#get_vct ⇒ Object
Método que devuelve el VCT
80 81 82 |
# File 'lib/gema/dieta_dsl.rb', line 80 def get_vct @vct end |
#ingesta_(opciones = {}) ⇒ Object
103 104 105 106 107 108 109 |
# File 'lib/gema/dieta_dsl.rb', line 103 def ingesta_(opciones={}) ingest = "" ingest << "#{opciones[:min]}" if opciones[:min] ingest<<"-#{opciones[:max]} %" if opciones[:max] @porcentaje_ingesta = ingest end |
#plato_(opciones = {}) ⇒ Object
111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/gema/dieta_dsl.rb', line 111 def plato_(opciones={}) grams= "" descripcion="" porcion="" grams= "#{opciones[:gramos]} g" if opciones[:gramos] descripcion = opciones[:descripcion] if opciones[:descripcion] porcion = opciones[:porcion] if opciones[:porcion] @platos.push([descripcion,porcion,grams]) end |
#porcentajes_(opciones = {}) ⇒ Object
123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/gema/dieta_dsl.rb', line 123 def porcentajes_(opciones={}) @vct = opciones[:vct] if opciones[:vct] proteinas = "" grasas = "" hidratos="" proteinas = opciones[:proteinas] if opciones[:proteinas] grasas = opciones[:grasas] if opciones[:grasas] hidratos = opciones[:hidratos] if opciones[:hidratos] @porcentajes.push(proteinas) @porcentajes.push(grasas) @porcentajes.push(hidratos) end |
#titulo_(name) ⇒ Object
99 100 101 |
# File 'lib/gema/dieta_dsl.rb', line 99 def titulo_(name) @titulo = name end |
#to_s ⇒ Object
Método para imprimir la Dieta
47 48 49 50 51 52 53 |
# File 'lib/gema/dieta_dsl.rb', line 47 def to_s title = "#{@titulo} ( #{@porcentaje_ingesta} )\n " for i in 0..@platos.size-1 title +="- #{@platos[i][0]}, #{@platos[i][1]}, #{@platos[i][2]} \n" end title += "V.C.T. |% #{@vct} kcal | #{@porcentajes[0]}% - #{@porcentajes[1]}% - #{@porcentajes[2]}%" end |