Sha256: 08295edc3884ad5ac4aea77038f4457faa3c694da6a8f1e42aef7f8ea1b9d1ac

Contents?: true

Size: 896 Bytes

Versions: 2

Compression:

Stored size: 896 Bytes

Contents

class PlatoDSL
	attr_accessor :nombre, :alimentos
	def initialize(nombre, &block)
		@nombre = nombre
		@alimentos = []

		if block_given?
		  if block.arity == 1
			yield self
	    	  else
		   	  instance_eval(&block)
	    	  end
	    	end
	end

	def alimento(nombre, options = {})
		alimento = nombre
		alimento << " (Gr: #{options[:gramos]} gr)" if options[:gramos]
		alimento << " (Pr: #{options[:proteinas]} gr)" if options[:proteinas]
		alimento << " (Hd: #{options[:hidratos]} gr)" if options[:hidratos]
		alimento << " (Lp: #{options[:lipidos]} gr)" if options[:lipidos]
		alimento << " (CO2: #{options[:gases]} kg/año)" if options[:gases]
		alimento << " (Terreno: #{options[:terreno]} m2/año)\n" if options[:terreno]
		@alimentos << alimento
	end

	def to_s
		salida = @nombre
		salida << "\n#{'=' * @nombre.size}\n\n"
		salida << "Alimentos: - #{@alimentos.join('- ')}\n\n"
	end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
feeding-0.2.0 lib/feeding/platoDSL.rb
feeding-0.1.0 lib/feeding/platoDSL.rb