Sha256: b1875b8b1731557333b87a6211c5df6a694c809bcd1439df850f07f77a42c041
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
# frozen_string_literal: false ## # Clase para representar un *menu* *dietetico* class Menu attr_reader :nombre, :desc, :componentes, :precio ## # Inicializa el objeto menu # @param nombre [String] Nombre del menu # @param block [Object] Bloque convertido a objeto que contiene el resto de informacion def initialize(nombre, &block) @nombre = nombre @desc = '' @componentes = [] @precio = 0.0 return unless block_given? if block.arity == 1 yield self else instance_eval(&block) end end ## # Metodo para establecer la descripcion del menu def descripcion(string = '') @desc << string end ## # Metodo para inicializar los componentes del menu # @param args [Hash] Contiene el plato y el precio def componente(args = {}) @componentes << args.slice(:plato, :precio) @precio += args[:precio] end ## # Convierte el objeto a una representacion en string # return [String] "Nombre. Componentes: ..." def to_s string = @nombre string << "\nComponentes:" @componentes.each do |componente| plato = componente[:plato] string << "\n\t" string << "#{plato.nombre} => #{componente[:precio]}€, #{plato.vct} kcal, #{plato.emisiones[:co2]} CO2" end string end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
alimento-alu0101109251-0.1.0 | lib/alimento/menu.rb |