Sha256: 4fa7dc9242cfc893861e6f45fc7979d12b62db015d5819fa5bbe87b0c7c3b1b0

Contents?: true

Size: 1.42 KB

Versions: 1

Compression:

Stored size: 1.42 KB

Contents

require 'insulin'

module Insulin
  class Day < Hash
    def initialize date, mongo
      @date = date
      @mongo = mongo

      keys = [
        "type",
        "subtype",
        "tag"
      ]
      self["all"] = []

      @mongo.db.collection(date).find().each do |e|
        ev = Event.new(e)
        keys.each do |k|
          sub = ev[k]
          if self[sub]
            self[sub] << ev
          else
            self[sub] = [ev]
          end
        end

        self["all"] << ev
      end
    end

    def average_glucose
      t = 0
      c = 0
      begin
        self["glucose"].each do |g|
          @glucose_units = g["units"]
          t += g["value"]
          c += 1
        end
      rescue NoMethodError
        return 0
      end

      return t / c
    end

    def to_s
      s = ""
      s << @date
      s << "\n"

      self["all"].each do |e|
        s << "    "
        s << e.simple
        s << "\n"
      end

      s << "    "
      s << "Average glucose: %4.2f %s" % [
        self.average_glucose,
        @glucose_units
      ]
      s
    end

    def minimal
      s = ""
      s << @date
      s << "\n"

# This needs a test!
      self["all"].each do |e|
        if ["breakfast", "lunch", "dinner", "bedtime"].include? e["tag"] and
          ["medication", "glucose"].include? e["type"]
            s << "    "
            s << e.simple
            s << "\n"
        end
      end

      s
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
insulin-0.0.18 lib/insulin/day.rb