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