Module: NutritionalCalculator

Defined in:
lib/nutritional_calculator.rb,
lib/nutritional_calculator/food.rb,
lib/nutritional_calculator/version.rb,
lib/nutritional_calculator/foodgroup.rb,
lib/nutritional_calculator/linkedlist.rb

Overview

El módulo se crea para describir los distintos elementos que compondrán una calculadora nutricional de alimentos.

Author

Cristian Abrante (mailto: alu0100945850@ull.edu.es)

Copyright

Creative Commons

License

Distributed under the same license as Ruby.

Defined Under Namespace

Classes: Food, FoodGroup, LinkedList

Constant Summary

VERSION =

Versión actual de la gema.

"3.0.0"

Class Method Summary collapse

Class Method Details

.read_nutritional_file(file_name) ⇒ Object

Método que lee la configuración del fichero.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/nutritional_calculator.rb', line 13

def self.read_nutritional_file(file_name)

  nutritional_hash = Hash.new

  File.open(file_name, "r") do |f|

    f.each_line do |line|
      vector = line.split(" ")

      if vector.length == 4
        nutritional_hash[vector[0]] = vector[1...4].map {|value| value.to_f}
      else

        pos = 1
        food_name = vector[0]

        while vector[pos].to_f == 0.0 && vector[pos] != "#{vector[pos].to_f}"
          food_name += " " + vector[pos]
          pos += 1
        end

        nutritional_hash[food_name] = vector[pos...vector.length].map {|value| value.to_f}
      end

    end

  end

  return nutritional_hash

end

.read_nutritional_groups(file_name) ⇒ Object

Método que lee la configuración del fichero para un grupo de alimentos.



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/nutritional_calculator.rb', line 47

def self.read_nutritional_groups(file_name)

  nutritional_groups = Hash.new

  File.open(file_name, "r") do |f|
    f.each_line do |line|

      vector = line.split(" ")

      num_pos = 1
      food_name = "#{vector[0]}"

      while vector[num_pos].to_f == 0.0 && vector[num_pos] != "#{vector[num_pos].to_f}"
        food_name += " " + "#{vector[num_pos]}"
        num_pos += 1
      end

      food_group = ""
      for chunk in vector[(num_pos + 3)...vector.length] do
          food_group += "#{chunk} "
      end

      vector_of_food = vector[num_pos...num_pos + 3].map {|value| value.to_f}
      vector_of_food[3] = food_group

      nutritional_groups[food_name] = vector_of_food

    end
  end

  nutritional_groups

end