Sha256: db6935a8b662b03b16c492a6e06f3113ff0d9cba0c4aa44e7257e6d009405c74

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

module Alimento

	class PlatoDSL

		require "alimento"
		
		attr_reader :nombre, :descripcion_plato, :componentes, :gramos, :alimentos, :platito

		def initialize(nombre, &block)
			@nombre = nombre
			@componentes = []
			@gramos = []
			@platito
			@list 
			if block_given?
				if block.arity == 1
					yield self
				else
					instance_eval(&block)
				end
			end
		end
	
		def descripcion(descr)
			@descripcion_plato = descr
		end

		def alimento(options = {})
			@componentes << options[:alimento]
			@gramos << options[:gramos] if options[:gramos]
		end

		def platillo
			@list = List.new(@componentes[0])
			for i in (1..@componentes.length - 1)
				@list.insert_head(@componentes[i])
			end
			@platito = PlatoAmbiental.new(@nombre, @list, @gramos)
		end

		def to_s
			if @platillo == nil
				platillo()
			end
			i = 0
			aux = "Nombre: #{@nombre}"
			aux += "\nComponentes: "
			@componentes.each { |val| 
					aux += "\n\t#{val.nombre}"
					aux += "\n\tGramos: #{@gramos[i]}"
					i += 1
			}
			aux
		end	
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
alimento_alu0101050218-0.1.0 lib/alimento/platoDSL.rb