class Alimento
require '/home/ubuntu/workspace/p6/tdd/lib/tdd/Lista.rb'
Clase ALimento , Plantilla para representar un alimento con sus respectivo nombre e información sobre nutrientes @author Lisseth Vergaray Del Aguila
Attributes
@return [String] nombre del alimento @return [Numeric] proteinas que contiene el alimento @return [Numeric] glúcidos que contiene el alimento @return [Numeric] grasas que contiene el alimento
@return [String] nombre del alimento @return [Numeric] proteinas que contiene el alimento @return [Numeric] glúcidos que contiene el alimento @return [Numeric] grasas que contiene el alimento
@return [String] nombre del alimento @return [Numeric] proteinas que contiene el alimento @return [Numeric] glúcidos que contiene el alimento @return [Numeric] grasas que contiene el alimento
@return [String] nombre del alimento @return [Numeric] proteinas que contiene el alimento @return [Numeric] glúcidos que contiene el alimento @return [Numeric] grasas que contiene el alimento
@return [String] nombre del alimento @return [Numeric] proteinas que contiene el alimento @return [Numeric] glúcidos que contiene el alimento @return [Numeric] grasas que contiene el alimento
Public Class Methods
Método para inicializar el objeto @param nombre proteinas glucidos grasas
# File lib/tdd/Alimento.rb, line 16 def initialize (nombre, proteinas, glucidos, grasas, g) @nombre = nombre @proteinas = proteinas @glucidos = glucidos @grasas = grasas @g = g end
Public Instance Methods
Método <=> para Mixin de Comparable @param otro , recibe otro objeto Alimento
para compararse
# File lib/tdd/Alimento.rb, line 62 def <=>(otro) if otro.is_a?Alimento self.get_valor_energetico <=> otro.get_valor_energetico end end
Restrictivo (con herencia - usa is_a?)
# File lib/tdd/Alimento.rb, line 53 def ==(other) if other.is_a?Alimento @nombre == other.nombre && @proteinas == other.proteinas && @glucidos == other.glucidos && @grasas = other.grasas else false end end
Método para calcular aibc de dos individuos @return suma que es un vector con el sumatorio de los indices
# File lib/tdd/Alimento.rb, line 83 def aibc r = [] (0..g.size - 1).map { |i| s = [] (1..g[i].size-1).map { |m| if g[i][m] < g[i][0] s << 0.0 else s << (((g[i][m] - g[i][0]) + (g[i][m-1] - g[i][0]))/2)*5 end } r << s } suma = [] (0..g.size-1).collect { |e| s = 0 (0..r[e].size-1).map { |k| s = s + r[e][k] } suma << s } suma end
Getter de atributo glúcidos @return glucidos
# File lib/tdd/Alimento.rb, line 35 def get_glucidos @glucidos end
Getter de atributo grasas @return grasas
# File lib/tdd/Alimento.rb, line 40 def get_grasas @grasas end
Getter de atributo nombre @return nombre
# File lib/tdd/Alimento.rb, line 25 def get_nombre @nombre end
Getter de atributo proteínas @return proteinas
# File lib/tdd/Alimento.rb, line 30 def get_proteinas @proteinas end
Método each para poder hacer uso de Enumerable
def each yield @nombre yield @proteinas yield @glucidos yield @grasas yield self.get_valor_energetico end Método para calcular el valor enérgetico del ALimento @return ve
# File lib/tdd/Alimento.rb, line 77 def get_valor_energetico ve = ((@proteinas * 4) + (@glucidos * 4) + (@grasas * 9)) ve.round(3) end
Método para mostrar el objeto @return cadena s
# File lib/tdd/Alimento.rb, line 45 def to_s s = "" # s << "#{@nombre} #{@proteinas} #{@glucidos} #{@grasas}" printf("%18s %10s %10s %10s %10s"," #{@nombre}","#{@proteinas}"," #{@glucidos}","#{@grasas}","#{get_valor_energetico}"); # s << "#{self.get_valor_energetico}" end