class Plato

Representa un plato (conjunto de alimentos)

Modo de uso

carne = Alimento.new(1,2,3,4,5,6)
papas = Alimento.new(6,5,4,3,2,1)
lista = List.new
lista.insert(carne)
lista.insert(papas)
Plato.new("carne con papas", lista)

Attributes

nombre[R]
total_nutricional[R]

Public Class Methods

new(nombre,ingredientes) click to toggle source

Construye un objeto Plato

# File lib/FoodImpact/plato.rb, line 17
def initialize(nombre,ingredientes)
  @nombre = nombre
  @ingredientes = ingredientes
  food = @ingredientes.head
  @total_nutricional = 0.0
  while food != nil do
    @total_nutricional += food[:value].proteinas * (food[:value].gramos / 1000.0)
    @total_nutricional += food[:value].carbohidratos * (food[:value].gramos / 1000.0)
    @total_nutricional += food[:value].lipidos * (food[:value].gramos / 1000.0)
    food = food[:next]
  end
end

Public Instance Methods

<=>(other) click to toggle source

Permite comparar platos por su valor nutricional

# File lib/FoodImpact/plato.rb, line 86
def <=>(other)
  @total_nutricional <=> other.total_nutricional
end
carbohidratos() click to toggle source

Develve los carbohidratos del plato

# File lib/FoodImpact/plato.rb, line 42
def carbohidratos
  food = @ingredientes.head
  carbos = 0.0
  while food != nil do
    carbos += food[:value].carbohidratos * (food[:value].gramos / 1000.0)
    food = food[:next]
  end
  carbos * (100.0 / @total_nutricional)
end
kcalorias() click to toggle source

Devuelve las kilocalorías del plato

# File lib/FoodImpact/plato.rb, line 64
def kcalorias
  food = @ingredientes.head
  calorias = 0.0
  while food != nil do
    calorias += food[:value].valor_energetico
    food = food[:next]
  end
  calorias
end
lipidos() click to toggle source

Devuelve los lipidos del plato

# File lib/FoodImpact/plato.rb, line 53
def lipidos
  food = @ingredientes.head
  lipidos = 0.0
  while food != nil do
    lipidos += food[:value].lipidos * (food[:value].gramos / 1000.0)
    food = food[:next]
  end
  lipidos * (100.0 / @total_nutricional)
end
proteinas() click to toggle source

Devuelve las proteinas del plato

# File lib/FoodImpact/plato.rb, line 31
def proteinas
  food = @ingredientes.head
  protein = 0.0
  while food != nil do
    protein += food[:value].proteinas * (food[:value].gramos / 1000.0)
    food = food[:next]
  end
  protein * (100.0 / @total_nutricional)
end
to_s() click to toggle source

Devuelve el plato formateado

# File lib/FoodImpact/plato.rb, line 75
def to_s
  format = "#{nombre}: "
  food = @ingredientes.head
  while food != @ingredientes.tail do
    format += "#{food[:value].nombre}, "
    food = food[:next]
  end
  format += "#{@ingredientes.tail[:value].nombre}"
end