class DietaryDsl::Menu
Clase que representa un menú. Un menú se compone de distintos platos (entrantes, primeros platos, postres…)
Attributes
title[R]
Public Class Methods
new(title, &block)
click to toggle source
# File lib/dietary_dsl/dsl/menu.rb, line 12 def initialize(title, &block) @title = title @platos = [] instance_eval(&block) end
Public Instance Methods
[](key)
click to toggle source
# File lib/dietary_dsl/dsl/menu.rb, line 18 def [](key) @platos[key] end
each() { |i| ... }
click to toggle source
# File lib/dietary_dsl/dsl/menu.rb, line 22 def each @platos.each { |i| yield i } end
kcal()
click to toggle source
# File lib/dietary_dsl/dsl/menu.rb, line 43 def kcal @platos.inject(0) do |sum, plato_y_cantidad| plato = plato_y_cantidad[:plato] racion = plato_y_cantidad[:racion] sum + racionar(plato, racion) end end
plato(datos, options = {})
click to toggle source
# File lib/dietary_dsl/dsl/menu.rb, line 26 def plato(datos, options = {}) return plato_single(datos) if datos.is_a?(Hash) @platos = @platos.push(plato: datos, racion: options[:racion]) end
plato_single(datos)
click to toggle source
# File lib/dietary_dsl/dsl/menu.rb, line 31 def plato_single(datos) @platos = @platos.push(plato: DietaryDsl::Plato.new(datos[:food]) { alimento(datos) }) end
racionar(plato, racion)
click to toggle source
# File lib/dietary_dsl/dsl/menu.rb, line 35 def racionar(plato, racion) if racion.nil? plato.kcal else ((racion.to.g * plato.kcal) / plato.masa.to.g) end end