#Kapil Ashok Melwani #alu0100883473 #Lenguajes y Paradigmas de la Programacion #Universidad de La Laguna #Clase Diet # ==== Funciones # # * +initialize()+ - Inicializamos los elementos del menu dietetico (Cabecera,menu y vct) # * +<=>(Other)+ - Funcion de comparacion de kcal # * +==(Other)+ - Funcion de comparacion de igualdad de menus dieteticos # * +to_s()+ - Funcion que mostrara el menu de forma concreta # * +get_---()+ - Conjunto de funciones que devolveran elementos del menu class Diet include Comparable #añadimos ya que es necesario para realizar las comparaciones attr_accessor :cabecera, :menu, :vct #Funcion en la cual inicializamos los elementos del menu a los recibidos por parametros def initialize(cabecera,menu,vct) @cabecera = cabecera @menu = menu @vct = vct end #Funcion la cual comparara mediante operadores <,>,<=,>= las kcal def <=>(other) vct[0]<=>other.vct[0] end #Funcion la cual comparara los menu dieteticos completos def ==(other) @cabecera==other.cabecera @menu==other.menu @vct==other.vct end #FUncion to_s la cual devolvera el menu dietetico establecido def to_s s = "" s << "#{cabecera[0]}" "(#{cabecera[1]}% - #{cabecera[2]}%)\n" for i in 0..menu.length-1 s << "- #{menu[i][0]}, #{menu[i][1]}, #{menu[i][2]}\n" end s << "V.C.T. | % \t#{vct[0]} kcal | #{vct[1]}% - #{vct[2]}% - #{vct[3]}%\n" end #Funcion que devolvera el tipo de comida que es (Desayuno, Merienda, Cena ...etc) def get_cabecera @cabecera[0] end #Funcion que devolvera el porcentaje de ingesta de alimentos def get_ingesta @cabecera[1] end #Funcion que devolvera un plato concreto def get_plato(num) @menu[num-1] end #Funcion que devolvera las kcal def get_vct @vct[0] end #Funcion que devolvera el porcentaje de proteinas def get_proteinas @vct[1] end #Funcion que devolvera el porcentaje de grasas def get_grasas @vct[2] end #Funcion que devolvera el porcentaje de hidratos def get_hidratos @vct[3] end end #Clase FoodGroup la cual representa el menu con el grupo de alimentos, esta, hereda la clase Diet # ==== Funciones # # * +initialize()+ - Inicializamos los elementos de la clase añadiendo los elementos de menu dietetico (Cabecera,menu y vct) mediante super # * +to_s()+ - Funcion que llama al to_s de Diet y le añade el grupo de alimentos class FoodGroup < Diet attr_accessor :elements #Inicializamos los elementos de la clase, en este caso solamente @elements que contendra el grupo de alimentos y el resto lo #introduciremos a traves de super en el menu dietetico def initialize(elements, cabecera, menu, vct) @elements = elements super(cabecera,menu,vct) end #Funcion to_s la cual devolvera el output que contendra el to_s de Diet con el añadido del grupo de alimentos def to_s output = super.to_s + "Food Group: #{elements}" return output end end #Clase FoodGroup la cual representa el menu con el grupo de edades, esta, hereda la clase Diet # ==== Funciones # # * +initialize()+ - Inicializamos los elementos de la clase añadiendo los elementos de menu dietetico (Cabecera,menu y vct) mediante super # * +to_s()+ - Funcion que llama al to_s de Diet y le añade el grupo de edades class Age < Diet attr_accessor :elements #Inicializamos los elementos de la clase, en este caso solamente @elements que contendra el grupo de edad y el resto lo #introduciremos a traves de super en el menu dietetico def initialize(elements, cabecera, menu, vct) @elements = elements super(cabecera,menu,vct) end #Funcion to_s la cual devolvera el output que contendra el to_s de Diet con el añadido del grupo de edad def to_s output = super.to_s + "Age Group: #{elements}" return output end end