Skip to content

Commit

Permalink
DSL hecho
Browse files Browse the repository at this point in the history
  • Loading branch information
alu0100836400 committed Jan 9, 2019
1 parent f758c43 commit f6b9507
Show file tree
Hide file tree
Showing 3 changed files with 133 additions and 15 deletions.
60 changes: 58 additions & 2 deletions alimento/lib/alimento/main.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,65 @@
# require 'alimento/lib/lista/lista'
require "./menu.rb"

# miLista = Lista.new()
# miLista.insertar(3)
# miLista.insertar(5)
# miLista.insertar(6)
# miLista.insertar(9)

# miLista.to_s
# miLista.to_s

menu = Menu.new("Lunes") do
# titulo "Bajo en calorías"
# ingesta :min => 30,
# :max => 35
desayuno :descripcion => "Pan de trigo integral",
:porcion => "1 rodaja",
:gramos => 100,
:grasas => 3.3,
:carbohidratos => 54.0,
:proteinas => 11.0,
:fibra => 2.3,
:sal => 0.06
desayuno :descripcion => "Actimel",
:porcion => "1 porción",
:gramos => 100,
:grasas => 3.4,
:carbohidratos => 4.4,
:proteinas => 3.6,
:fibra => "x",
:sal => 0.05
almuerzo :descripcion => "Arroz",
:porcion => "1 taza",
:gramos => 100,
:grasas => 0.9,
:carbohidratos => 81.6,
:proteinas => 6.67,
:fibra => 1.4,
:sal => 0.04
almuerzo :descripcion => "Lentejas",
:porcion => "1/2 cucharón",
:gramos => "x",
:grasas => 0.4,
:carbohidratos => 20.0,
:proteinas => 9.0,
:fibra => 8.0,
:sal => 0.02
almuerzo :descripcion => "Naranja",
:porcion => "1 pieza",
:gramos => 100,
:grasas => 0.12,
:carbohidratos => 11.75,
:proteinas => 0.94,
:fibra => 2.4,
:sal => "x"
cena :descripcion => "Leche entera hacendado",
:porcion => "1 vaso",
:gramos => 100,
:grasas => 3.6,
:carbohidratos => 4.6,
:proteinas => 3.1,
:fibra => "x",
:sal => 0.13
end

puts menu
79 changes: 75 additions & 4 deletions alimento/lib/alimento/menu.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,24 @@ class Menu

include Comparable

attr_reader :listaComidas, :total
attr_reader :listaComidas, :total, :dia, :desayuno_array, :almuerzo_array, :cena_array

def initialize(listaComidas)
#def initialize(listaComidas, &block)
def initialize(dia, &block)
@dia = dia
@desayuno_array = []
@almuerzo_array = []
@cena_array = []

@listaComidas = listaComidas
cantidad_calorica #no rula porque...
#cantidad_calorica #no rula porque...
if block_given?
if block.arity == 1
yield self
else
instance_eval(&block)
end
end
end

def cantidad_calorica
Expand All @@ -15,13 +28,71 @@ def cantidad_calorica
@total = @total + i.calcular_valor_energetico_cal #...dice que no existe esta funcion
end
end

def desayuno(options = {})
desayuno = ""
desayuno << " (#{options[:descripcion]})" if options[:descripcion]
desayuno << " (#{options[:porcion]})" if options[:porcion]
desayuno << " (#{options[:gramos]})" if options[:gramos]
desayuno << " (#{options[:grasa]})" if options[:grasa]
desayuno << " (#{options[:carbohidratos]})" if options[:carbohidratos]
desayuno << " (#{options[:proteinas]})" if options[:proteinas]
desayuno << " (#{options[:fibra]})" if options[:fibra]
desayuno << " (#{options[:sal]})" if options[:sal]
@desayuno_array << desayuno
end

def almuerzo(options = {})
almuerzo = ""
almuerzo << " (#{options[:descripcion]})" if options[:descripcion]
almuerzo << " (#{options[:porcion]})" if options[:porcion]
almuerzo << " (#{options[:gramos]})" if options[:gramos]
almuerzo << " (#{options[:grasa]})" if options[:grasa]
almuerzo << " (#{options[:carbohidratos]})" if options[:carbohidratos]
almuerzo << " (#{options[:proteinas]})" if options[:proteinas]
almuerzo << " (#{options[:fibra]})" if options[:fibra]
almuerzo << " (#{options[:sal]})" if options[:sal]
@almuerzo_array << almuerzo
end

def cena(options = {})
cena = ""
cena << " (#{options[:descripcion]})" if options[:descripcion]
cena << " (#{options[:porcion]})" if options[:porcion]
cena << " (#{options[:gramos]})" if options[:gramos]
cena << " (#{options[:grasa]})" if options[:grasa]
cena << " (#{options[:carbohidratos]})" if options[:carbohidratos]
cena << " (#{options[:proteinas]})" if options[:proteinas]
cena << " (#{options[:fibra]})" if options[:fibra]
cena << " (#{options[:sal]})" if options[:sal]
@cena_array << cena
end

def <=>(otro)
@total <=> otro.total
end

def to_s()
"(#{@listaComidas}){#{@total}}"
output = "#{@dia} Composición nutricional"
output << "\n========================================================================================="
output << "\n Porción\t Gramos\t Grasas\t Carbohidratos\t Proteínas\t Fibra\t Sal\n"

output << "Desayuno\n"
@desayuno_array.each_with_index do |desayuno, index|
output << "#{desayuno}\n"
end

output << "Almuerzo\n"
@almuerzo_array.each_with_index do |almuerzo, index|
output << "#{almuerzo}\n"
end

output << "Cena\n"
@cena_array.each_with_index do |cena, index|
output << "#{cena}\n"
end

output
end

end
9 changes: 0 additions & 9 deletions alimento/lib/dep.rb

This file was deleted.

0 comments on commit f6b9507

Please sign in to comment.