class Menu include Comparable attr_reader :titulo, :porcentaje, :platos, :vct, :proteinas, :grasas, :hidratos def initialize titulo, porcentaje, platos, vct, proteinas, grasas, hidratos @titulo, @porcentaje, @platos, @vct, @proteinas, @grasas, @hidratos = titulo, porcentaje, platos, vct, proteinas, grasas, hidratos end def get_titulo @titulo end def get_plato i @platos[i] end def getall_platos @platos end def get_vct @vct end def get_porcentaje @porcentaje end def to_s out = "#{@titulo.upcase} (#{@porcentaje}%)\n" out << @platos.map { |plato| "- #{plato}" }.join(",\n") out << "\nV.C.T. | % #{vct} kcal | #{proteinas}% - #{grasas}% - #{hidratos}%" out end def get_proteinas @proteinas end def get_grasas @grasas end def get_hidratos @hidratos end def <=>(otro) titulo<=>otro.titulo end end class Grupo_alimento < Menu attr_accessor :grupo_alimento def initialize titulo, porcentaje, platos, vct, proteinas, grasas, hidratos, grupo_alimento @titulo, @porcentaje, @platos, @vct, @proteinas, @grasas, @hidratos, @grupo_alimento = titulo, porcentaje, platos, vct, proteinas, grasas, hidratos, grupo_alimento end def to_s out = "Menu dietetico del grupo #{@grupo_alimento}\n" out << "#{@titulo.upcase} (#{@porcentaje}%)\n" out << @platos.map { |plato| "- #{plato}" }.join(",\n") out << "\nV.C.T. | % #{vct} kcal | #{proteinas}% - #{grasas}% - #{hidratos}%" out end end class Grupo_edad < Menu attr_accessor :grupo_edad def initialize titulo, porcentaje, platos, vct, proteinas, grasas, hidratos, grupo_edad @titulo, @porcentaje, @platos, @vct, @proteinas, @grasas, @hidratos, @grupo_edad = titulo, porcentaje, platos, vct, proteinas, grasas, hidratos, grupo_edad end def to_s out = "Menu dietetico del grupo #{@grupo_edad}\n" out << "#{@titulo.upcase} (#{@porcentaje}%)\n" out << @platos.map { |plato| "- #{plato}" }.join(",\n") out << "\nV.C.T. | % #{vct} kcal | #{proteinas}% - #{grasas}% - #{hidratos}%" out end end