Alimento

Gema usada para representar y calcular el valor energético de un alimento.

Preparación de la gema

  • Instalar 'bundler' gem install bundler
  • Instalar 'rspec' gem install rspec
  • Crear la gema 'alimento' bundle gem alimento
  • Modificar el fichero 'Gemfile' vim Gemfile <<<<<<< HEAD

* Añadir a Travis

  • Incluir acceso con Travis

c984848255ac3b8c372dd54c2e122527b42404c9

Instalación

gem 'alimento'

And then execute:

$ bundle

Or install it yourself as:

$ gem install alimento

Usage

La gema 'Alimento' tiene una clase con el mismo nombre, a cuyas instancias se le tienen que pasar 4 argumentos:

  • Nombre del alimento
  • % de proteínas
  • % de glúcidos (azúcares)
  • % de lípidos (grasas)
  • cantidad de alimento (gr)

Tambien contiene una clase 'List' que representa listas de alimentos, cuyos nodos son los alimentos pertenecientes a su grupo (lácteos, carnes, pescados, etc...), usando una estructura ('Struct') para representar cada nodo. Dicha lista es del tipo "doblemente enlazada".

Finalmente, existe una clase por cada grupo de alimentos que heredan de la clase 'Alimento': sus atributos y métodos.

Development

De la clase 'Alimento', son accesibles(para lectura) el 'nombre', y las cantidades de 'proteinas','glucidos' y 'lipidos' introducidos.

Además, 'Alimento' cuenta con los siguientes métodos:

  • alimento.getNombre
  • alimento.grProteinas
  • alimento.grGlucidos
  • alimento.grLipidos
  • alimento.calorias
  • alimento.to_s

La clase 'List' tiene accesibles (lectura) el 'head' y el 'tail' de la lista. Que a su vez, permiten conocer el 'valor','prev' y 'sigte' del nodo al que "apuntan".

Los métodos de la clase 'List' son los siguientes:

  • .insertaNodo (Inserta un nuevo nodo en la lista)
  • .rmHead (Elimina el nodo-cabeza de la lista)
  • .rmTail (Elimina el nodo-cola de la lista)

Pruebas realizadas con la herramienta 'rspec'. Fichero de pruebas: alimento/spec/alimento_spec.rb

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/ULL-ESIT-LPP-1718/tdd-alu0101069937.