Sha256: a5d3932d8df5fffa39587781b37b414d9bd17a030e9caae25cc4a4632e62f319

Contents?: true

Size: 999 Bytes

Versions: 3

Compression:

Stored size: 999 Bytes

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 = Insulin::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
      self["glucose"].each do |g|
        @glucose_units = g["units"]
        t += g["value"]
        c += 1
      end

      return t / c
    end

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

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

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
insulin-0.0.12 lib/insulin/day.rb
insulin-0.0.11 lib/insulin/day.rb
insulin-0.0.10 lib/insulin/day.rb