Class: Eficiencia

Inherits:
Plato
  • Object
show all
Includes:
Comparable
Defined in:
lib/feeding/plato.rb

Overview

Author

Eduardo Estévez Rodríguez ([email protected])

Copyright

Cretive Commons

License

Distributes under the same terms as Ruby

Instance Attribute Summary

Attributes inherited from Plato

#alimentos, #gramos, #nombre

Instance Method Summary collapse

Methods inherited from Plato

#get_cbh, #get_kcal, #get_lpd, #get_prt

Constructor Details

#initialize(nombre, alimentos, gramos) ⇒ Eficiencia

Se asigna el nombre del plato, los alimentos y la cantidad en gramos que los mismos. Función heredada



120
121
122
# File 'lib/feeding/plato.rb', line 120

def initialize(nombre, alimentos, gramos)
	super(nombre, alimentos, gramos)
end

Instance Method Details

#<=>(other) ⇒ Object

Se define para incluir el mixin Comparable Se toma como valor para la comparación la huella nutricional del plato



200
201
202
# File 'lib/feeding/plato.rb', line 200

def <=>(other)
	hn <=> other.hn
end

#get_alimentosObject

Devuelve los alimentos que componen el plato. Función heredada



130
131
132
# File 'lib/feeding/plato.rb', line 130

def get_alimentos
	super
end

#get_gasesAObject

Devuelve la cantidad de gases anuales emitidos al producir el plato



145
146
147
148
149
150
151
152
153
154
155
# File 'lib/feeding/plato.rb', line 145

def get_gasesA
	aux_gases = @alimentos.get_head()
               aux_gr = @gramos.get_head()
               gases_t = 0
               while !aux_gases.nil?
                       gases_t += (aux_gases[:value].porcion_gases(aux_gr[:value]))
                       aux_gases = aux_gases[:next]
                       aux_gr = aux_gr[:next]
               end
               gases_t.round(2)
end

#get_gasesDObject

Devuelve la cantidad de gases diarios emitidos al producir el plato



140
141
142
# File 'lib/feeding/plato.rb', line 140

def get_gasesD
	(get_gasesA / 365).round(3)
end

#get_gramosObject

Devuelve los gramos de los alimentos que componen el plato. Función heredada



135
136
137
# File 'lib/feeding/plato.rb', line 135

def get_gramos
	super
end

#get_nombreObject

Devuelve el nombre del plato. Función heredada



125
126
127
# File 'lib/feeding/plato.rb', line 125

def get_nombre
	super
end

#get_terrenoObject

Devuelve la cantidad de terreno que utiliza al producir el plato



158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/feeding/plato.rb', line 158

def get_terreno
	aux_terreno = @alimentos.get_head()
	aux_gr = @gramos.get_head()
               terreno_t = 0
               while !aux_terreno.nil?
                       terreno_t += (aux_terreno[:value].porcion_terreno(aux_gr[:value]))
                       aux_terreno = aux_terreno[:next]
                       aux_gr = aux_gr[:next]
               end
	terreno_t.round(2)

end

#hnObject

Calcula la huella nutricional del plato



178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
# File 'lib/feeding/plato.rb', line 178

def hn
      		if (get_kcal < 670)
                       v_kcal = 1
               elsif (get_kcal > 830)
                       v_kcal = 3
               else
                       v_kcal = 2
               end

               if (get_gasesA < 0.8)
                       v_gases = 1
               elsif (get_gasesA > 1.2)
                   	v_gases = 3
               else
                       v_gases = 1
               end
	
	((v_kcal + v_gases)/2.0).round(2)
end

#to_sObject

Devuelve el plato formateado con la informacón nutricional y ambiental



172
173
174
175
# File 'lib/feeding/plato.rb', line 172

def to_s
	super + "(#{get_gasesA}, #{get_gasesD}, #{get_terreno})"

end