# Clase Menú que almacena los platos y valores nutricionales # @author alu0100880625 # @attr_reader [Array] encabezado Array de Strings que almacena el título y el porcentaje de ingesta diaria # @attr_reader [Array] platos Array bidimensional de Strings que almacena los ingredientes y cantidades, la forma de cocinar y las unidades # @attr_reader [Array] valores Array que contiene los valores nutricionales y porcentajes class Menu include Comparable attr_reader :encabezado, :platos, :valores # Método que instancia un objeto de la clase # @param [Array] encabezado Array de Strings que almacena el título y el porcentaje de ingesta diaria # @param [Array] platos Array bidimensional de Strings que almacena los ingredientes y cantidades, la forma de cocinar y las unidades # @param [Array] valores Array que contiene los valores nutricionales y porcentaes # @return [Object] def initialize(encabezado=[], platos=[], valores=[], &block) @encabezado, @platos, @valores = encabezado, platos, valores if(block_given?) instance_eval(&block) end end # Método que retorna el i-ésimo platos # @param [Int] i plato que queremos consultar # @return [Array] array bidimensional con la información del plato def get_plato(i) @platos[i-1] end # Método que retorna el título # @return [String] título del menú def get_titulo @encabezado[0] end # Método que retorna el porcentaje de ingesta diaria # @return [String] porcentaje de ingesta def get_ingesta @encabezado[1] end # Método que retorna el número de kCal del menú # @return [Double] número de kCAl def get_vct @valores[0] end # Método que retorna el cantidad de proteinas del menú # @return [Double] número de proteinas def get_proteinas @valores[1] end # Método que retorna el cantidad de grasas del menú # @return [Double] número de grasas def get_grasas @valores[2] end # Método que retorna el cantidad de hidratos del menú # @return [Double] número de hidratos def get_hidratos @valores[3] end # Método que formatea el menú para mostrarlo # @return [String] cadena que contiene el menú formateado def to_s aux=get_titulo+" ("+get_ingesta+")\n" i=0 while i(other) @valores <=> other.valores end def titulo(options) @encabezado << "#{options[:nombre]}" @encabezado << "#{options[:ingesta]}" end def plato(options) plato = [] plato << "#{options[:nombre]}" plato << "#{options[:raciones]}" plato << "#{options[:cantidad]}" @platos << plato end def valor(options) @valores << options[:kcal] @valores << options[:proteinas] @valores << options[:grasas] @valores << options[:hidratos] end end