class DietaryDsl::Plato
Clase que representa un plato. Un plato es una comida especĂfica, como pulpo a la gallega, o un potaje
Attributes
title[R]
Public Class Methods
new(title, &block)
click to toggle source
# File lib/dietary_dsl/dsl/plato.rb, line 12 def initialize(title, &block) @title = title @alimentos = [] instance_eval(&block) end
Public Instance Methods
[](key)
click to toggle source
# File lib/dietary_dsl/dsl/plato.rb, line 18 def [](key) @alimentos[key] end
alimento(datos)
click to toggle source
# File lib/dietary_dsl/dsl/plato.rb, line 26 def alimento(datos) alimento = DietaryDsl::Alimento.new(datos[:food], datos) cantidad = datos[:cantidad] @alimentos = @alimentos.push food: alimento, cantidad: cantidad end
each() { |i| ... }
click to toggle source
# File lib/dietary_dsl/dsl/plato.rb, line 22 def each @alimentos.each { |i| yield i } end
kcal()
click to toggle source
# File lib/dietary_dsl/dsl/plato.rb, line 32 def kcal @alimentos.inject(0) do |sum, item| cantidad = item[:cantidad] kilocalorias = item[:food].kcal is_mass = cantidad.instance_of? DietaryDsl::Masa gramos = cantidad.to.g if is_mass gramos = cantidad.to.cm3 unless is_mass kcal_totales = ((gramos * kilocalorias) / 100) sum + kcal_totales end end
kcal_por_cada(cantidad)
click to toggle source
# File lib/dietary_dsl/dsl/plato.rb, line 45 def kcal_por_cada(cantidad) (kcal * cantidad.to.g) / masa.to.g end
masa()
click to toggle source
# File lib/dietary_dsl/dsl/plato.rb, line 49 def masa gr = @alimentos.inject(0) do |sum, item| is_mass = item[:cantidad].instance_of? DietaryDsl::Masa gramos = item[:cantidad].to.g if is_mass gramos = item[:cantidad].to.cm3 unless is_mass sum + gramos end DietaryDsl::Masa.new(gr) end
single?()
click to toggle source
# File lib/dietary_dsl/dsl/plato.rb, line 71 def single? @alimentos.length == 1 end
to_s()
click to toggle source
# File lib/dietary_dsl/dsl/plato.rb, line 60 def to_s alimentos = @alimentos .map { |data| "* #{data[:food][:nombre]}" } .join("\n") <<~OUTPUT #{@title} #{alimentos} OUTPUT end