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

g[RW]

@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

glucidos[RW]

@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

grasas[RW]

@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

nombre[RW]

@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

proteinas[RW]

@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

new(nombre, proteinas, glucidos, grasas, g) click to toggle source

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

<=>(otro) click to toggle source

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
==(other) click to toggle source

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
aibc() click to toggle source

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
get_glucidos() click to toggle source

Getter de atributo glúcidos @return glucidos

# File lib/tdd/Alimento.rb, line 35
def get_glucidos
    @glucidos
end
get_grasas() click to toggle source

Getter de atributo grasas @return grasas

# File lib/tdd/Alimento.rb, line 40
def get_grasas
    @grasas
end
get_nombre() click to toggle source

Getter de atributo nombre @return nombre

# File lib/tdd/Alimento.rb, line 25
def get_nombre
    @nombre
end
get_proteinas() click to toggle source

Getter de atributo proteínas @return proteinas

# File lib/tdd/Alimento.rb, line 30
def get_proteinas
    @proteinas
end
get_valor_energetico() click to toggle source

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
to_s() click to toggle source

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