Class: Plato_dsl
- Inherits:
-
Plato
show all
- Includes:
- Comparable
- Defined in:
- lib/p6/plato_dsl.rb
Overview
Clase plato para que funcione con DSL
Instance Attribute Summary
Attributes inherited from Plato
#emision_, #terreno_
Attributes inherited from Plato_i
#alimentos_, #nombre_, #peso_
Instance Method Summary
collapse
Methods inherited from Plato
#<=>, #emision_total, #energia, #huella_carbono, #huella_nutricional, #impacto, #initalize, #terreno_total
Methods inherited from Plato_i
#<=>, #porc_carbo, #porc_lipidos, #porc_proteinas, #vct
Constructor Details
#initialize(string, &block) ⇒ Plato_dsl
Constructor de la clase Plato_dsl
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/p6/plato_dsl.rb', line 6
def initialize(string, &block)
@nombre_ = string
@alimentos_ = List.new
@peso_ = List.new
if block_given?
if block.arity == 1
yield self
else
instance_eval(&block)
end
end
end
|
Instance Method Details
#alimento(options = {}) ⇒ Object
21
22
23
24
25
|
# File 'lib/p6/plato_dsl.rb', line 21
def alimento(options={})
aux = Alimento.new(options[:descripcion],options[:proteinas],options[:hidratos],options[:lipidos],options[:emision],options[:terreno])
@alimentos_.insert(aux)
@peso_.insert(options[:peso])
end
|
#hidratos ⇒ Object
31
32
33
|
# File 'lib/p6/plato_dsl.rb', line 31
def hidratos
@alimentos_.collect{|alimento| alimento.carbo_}.reduce(:+)
end
|
#lipidos ⇒ Object
35
36
37
|
# File 'lib/p6/plato_dsl.rb', line 35
def lipidos
@alimentos_.collect{|alimento| alimento.lipidos_}.reduce(:+)
end
|
#proteinas ⇒ Object
27
28
29
|
# File 'lib/p6/plato_dsl.rb', line 27
def proteinas
@alimentos_.collect{|alimento| alimento.proteinas_}.reduce(:+)
end
|
#to_s ⇒ Object
39
40
41
42
|
# File 'lib/p6/plato_dsl.rb', line 39
def to_s
output = "Nombre: #{@nombre_} | C02: #{emision_total} | Terreno: #{terreno_total} | Kcal: #{vct.round(2)}\n"
return output
end
|