Class: Alimentos::PlatoA

Inherits:
Plato
  • Object
show all
Includes:
Comparable
Defined in:
lib/alimentos.rb

Overview

Encargada de la representacion de un plato centrada en su impacto ambiental

Author:

Instance Attribute Summary

Attributes inherited from Plato

#grams, #name, #receip

Instance Method Summary collapse

Methods inherited from Plato

#calories, #carPercent, #lipPercent, #proPercent

Constructor Details

#initialize(name, receip, grams) ⇒ PlatoA

Llama al constructor de Plato (su padre)

Parameters:

  • name (String)

    Nombre del plato

  • receip (Array[Alimento])

    Lista de alimentos del plato

  • grams (Array[Int])

    Lista de gramos de los alimentos



298
299
300
# File 'lib/alimentos.rb', line 298

def initialize(name, receip, grams)
  super(name, receip, grams)
end

Instance Method Details

#<=>(param) ⇒ Bool

Comparable para PlatoA, centrado en la huella nutricional

Parameters:

  • param (Plato)

    PlatoA a comparar

Returns:

  • (Bool)

    Devuelve el booleano de realizar la comprobacion de Comparable



309
310
311
# File 'lib/alimentos.rb', line 309

def <=>(param)
  huella_nut <=> param.huella_nut
end

#huella_nutFloat

Calcula la huella nutricional de un plato y halla su baremo

Returns:

  • (Float)

    Media entre la huella calorica y ambiental baremadas



318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
# File 'lib/alimentos.rb', line 318

def huella_nut
  cal = calories
  gas = plato_ambiente

  if cal < 670
    cal = 1
  elsif cal < 830
    cal = 2
  else
    cal = 3
  end

  if gas < 800
    gas = 1
  elsif gas < 1200
    gas = 2
  else
    gas = 3
  end

  (cal + gas) / 2.round(2)
end

#plato_ambienteFloat

Calcula el impacto ambiental de un plato

Returns:

  • (Float)

    Impacto ambiental del plato



376
377
378
379
380
381
382
383
384
385
386
# File 'lib/alimentos.rb', line 376

def plato_ambiente
  aux = []
  for i in 0..@grams.length() - 1
    aux[i] = @grams[i] / 100
  end
  x = 0
  for i in 0..@receip.tam - 1
    x += @receip.lista[i].value.gei * aux[i]
  end
  x.round(2)
end

#plato_geiFloat

Calcula los gases de efecto invernaderos de un plato

Returns:

  • (Float)

    Gases de efecto invernadero



346
347
348
349
350
351
352
# File 'lib/alimentos.rb', line 346

def plato_gei
  aux = 0
  for i in 0..@receip.tam - 1
    aux += @receip.lista[i].value.gei
  end
  aux.round(2)
end

#plato_terrenoFloat

Cacula el uso del terreno en m^2 de un plato

Returns:

  • (Float)

    Uso del terreno en M^2



359
360
361
362
363
364
365
366
367
368
369
# File 'lib/alimentos.rb', line 359

def plato_terreno
  aux = []
  for i in 0..@grams.length() - 1
    aux[i] = @grams[i] / 100
  end
  x = 0
  for i in 0..@receip.tam - 1
    x += @receip.lista[i].value.terrain * aux[i]
  end
  x.round(2)
end

#to_sString

Formato del plato a string

Returns:

  • (String)

    String con el formato para la representacion de un PlatoA



393
394
395
# File 'lib/alimentos.rb', line 393

def to_s
  "#{plato_gei}, #{plato_terreno}"
end