Sha256: 52f58ce631fcf3305b47dfafc6beb53224d88df235cc58dde649fb5b19668226
Contents?: true
Size: 875 Bytes
Versions: 2
Compression:
Stored size: 875 Bytes
Contents
class MenuDSL attr_accessor :precio, :nombre, :descripcion, :platos def initialize(nombre, &block) @nombre = nombre @descripcion = "" @platos = [] @precio = 0 if block_given? if block.arity == 1 yield self else instance_eval(&block) end end end def plato(nombre, options = {}) plato = nombre plato << " (Descripción: #{options[:descripcion]})" if options[:descripcion] plato << " (#{options[:precio]}€)\n" if options[:precio] @precio += options[:precio] @platos << plato end def descripcion(d) @descripcion = d end def to_s salida = @nombre salida << "\n#{'=' * @nombre.size}\n" salida << "Descripción: #{@descripcion}\n\n" salida << "Platos: - #{@platos.join('- ')}\n" salida << "Precio total: #{@precio}€\n\n" end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
feeding-0.2.0 | lib/feeding/menuDSL.rb |
feeding-0.1.0 | lib/feeding/menuDSL.rb |