Class: Menu

Inherits:
ListaDobleEnlazada show all
Defined in:
lib/Menu.rb

Instance Attribute Summary collapse

Attributes inherited from ListaDobleEnlazada

#head, #size, #tail

Instance Method Summary collapse

Methods inherited from ListaDobleEnlazada

#[], #each, #extract_head, #extract_tail, #extracted, #insert, #insertList, #inserted

Constructor Details

#initialize(nombre, &block) ⇒ Menu

Returns a new instance of Menu.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/Menu.rb', line 8

def initialize(nombre, &block)
	@nombre = nombre
	@descripcion = ""
	@precio = 0.0

	super()

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

Instance Attribute Details

#descripcion(desc) ⇒ Object (readonly)

Returns the value of attribute descripcion.



6
7
8
# File 'lib/Menu.rb', line 6

def descripcion
  @descripcion
end

#nombreObject (readonly)

Returns the value of attribute nombre.



6
7
8
# File 'lib/Menu.rb', line 6

def nombre
  @nombre
end

#precio(precio) ⇒ Object

Returns the value of attribute precio.



5
6
7
# File 'lib/Menu.rb', line 5

def precio
  @precio
end

Instance Method Details

#componente(options = {}) ⇒ Object

Función de llamada para DSL Formato: { :descripcion => <“Descripcion del plato”>, :precio => <“Precio total del plato”> :alimento => [ { :descripcion => <“Nombre alimento”>, :proteinas => X, :carbohidratos => Y, :lipidos => Z, :gei => A, :terreno => B, :gramos => C} { :descripcion => <“Nombre alimento”>, :proteinas => X, :carbohidratos => Y, :lipidos => Z, :gei => A, :terreno => B, :gramos => C } . . . ] }



37
38
39
40
41
42
43
# File 'lib/Menu.rb', line 37

def componente( options = {} )
	descripcion =  options[:descripcion]
	plato = Plato.new( descripcion )
	plato.precio = options[:precio] ? options[:precio] : 0
	options[:alimento].each{ |alimento| plato.alimento(alimento) }  if options[:alimento]
	self.insert(plato)
end

#to_sObject



53
54
55
56
57
58
59
# File 'lib/Menu.rb', line 53

def to_s
	result = "Menu '#{nombre} -> "
	self.each{|plato| result += "#{plato}(#{plato.precio} €)\n, " }
	result = result[0...-2]
	result += ". Precio total = #{@precio}" 
               return result		
end