insulin 0.0.9 → 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +2 -1
- data/README.md +10 -2
- data/TODO.md +6 -1
- data/bin/insulin +15 -4
- data/files/google_spreadsheet.csv +6 -0
- data/files/on_track.csv +33 -10
- data/insulin.gemspec +1 -0
- data/lib/insulin.rb +2 -0
- data/lib/insulin/day.rb +60 -0
- data/lib/insulin/event.rb +34 -1
- data/lib/insulin/on_track_csv_file.rb +2 -2
- data/lib/insulin/version.rb +1 -1
- data/scripts/build.sh +6 -0
- data/spec/insulin_day_spec.rb +36 -0
- data/spec/insulin_event_spec.rb +20 -0
- data/spec/insulin_mongo_handle_spec.rb +0 -1
- data/spec/insulin_on_track_csv_file_spec.rb +17 -7
- data/spec/spec_helper.rb +16 -0
- metadata +25 -2
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -17,15 +17,21 @@ Usage
|
|
17
17
|
|
18
18
|
insulin ingest </path/to/on_track_export_file.csv>
|
19
19
|
|
20
|
-
This will take that file,
|
20
|
+
This will take that file, parse it, and push the JSON into a number of collections in a MongoDB database called 'insulin'. You can view them with something like
|
21
21
|
|
22
22
|
$ mongo insulin
|
23
23
|
MongoDB shell version: 2.0.6
|
24
24
|
connecting to: insulin
|
25
25
|
> db.events.find({serial : 266})
|
26
|
-
{ "_id" : ObjectId("4ff07b371508cc259c8a8f0c"), "serial" : 266, "timestamp" : ISODate("2012-06-28T09:21:05Z"), "tzoffset" : "+0100", "timezone" : "BST", "unixtime" : 1340875265, "day" : "thursday", "date" : "2012-06-28", "time" : "10:21:05 BST", "type" : "medication", "subtype" : "humalog", "tag" : "
|
26
|
+
{ "_id" : ObjectId("4ff07b371508cc259c8a8f0c"), "serial" : 266, "timestamp" : ISODate("2012-06-28T09:21:05Z"), "tzoffset" : "+0100", "timezone" : "BST", "unixtime" : 1340875265, "day" : "thursday", "date" : "2012-06-28", "time" : "10:21:05 BST", "type" : "medication", "subtype" : "humalog", "tag" : "breakfast", "value" : 4, "notes" : { "food" : [ "2 bacon", "2 toast" ], "note" : [ "test note" ] } }
|
27
27
|
>
|
28
28
|
|
29
|
+
You can also run the tests, if you're into that sort of thing:
|
30
|
+
|
31
|
+
bundle exec rspec
|
32
|
+
|
33
|
+
There's also some Postfix voodoo I've been using to extract the CSVs from incoming mail, which I'll document here soon.
|
34
|
+
|
29
35
|
Next steps
|
30
36
|
==========
|
31
37
|
|
@@ -34,4 +40,6 @@ Next steps
|
|
34
40
|
* Give it a [meteor](http://meteor.com/) front-end (might require some help from [Chris](https://github.com/mrchrisadams)). Graphs, yo
|
35
41
|
* Possibly connect to [this API](http://platform.fatsecret.com/api/) to extract carb values from plain-text food descriptions (this may be a little ambitious, we'll see)
|
36
42
|
|
43
|
+
---
|
37
44
|
|
45
|
+
Project built using DDD (Diabetes-Driven Development)
|
data/TODO.md
CHANGED
@@ -1,2 +1,7 @@
|
|
1
|
-
* Rake tasks to build, move to pkg/, publish
|
2
1
|
* Executable needs to handle config somehow (~/.insulinrc maybe)
|
2
|
+
* Indexes
|
3
|
+
* Map/reduce somewhere?
|
4
|
+
* Jenkins?
|
5
|
+
* Food - combine available carbs data with meds object? or other way around?
|
6
|
+
* Unhappy with event display from Day. Maybe just make these things fixed-width and move this into Event (which should have a variety of to_s-ish methods, including as_csv which takes a list of fields)
|
7
|
+
* Estimated hba1c?
|
data/bin/insulin
CHANGED
@@ -5,13 +5,24 @@ require 'thor'
|
|
5
5
|
|
6
6
|
module Insulin
|
7
7
|
class I < Thor
|
8
|
-
|
8
|
+
@@mongo = Insulin::MongoHandle.new ({"database" => "insulin"})
|
9
9
|
|
10
|
-
|
10
|
+
# map "-i" => :ingest
|
11
|
+
|
12
|
+
desc "ingest FILE", "ingest OnTrack CSV export FILE"
|
11
13
|
def ingest file
|
12
14
|
csv = Insulin::OnTrackCsvFile.new file
|
13
|
-
|
14
|
-
|
15
|
+
csv.save_events @@mongo
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "day DATE", "show stats for day DATE (default is today)"
|
19
|
+
def day date = nil
|
20
|
+
if not date
|
21
|
+
require 'time'
|
22
|
+
date = Time.new.strftime "%F"
|
23
|
+
end
|
24
|
+
d = Insulin::Day.new date, @@mongo
|
25
|
+
puts d
|
15
26
|
end
|
16
27
|
end
|
17
28
|
end
|
@@ -0,0 +1,6 @@
|
|
1
|
+
Date,Mass,Breakfast,,,,,Morning snacks,Lunch,,,,,Afternoon snacks,Dinner,,,,,Evening snacks,Bedtime,,
|
2
|
+
,,Time,BG,Insulin,Food,Drink,,Time,BG,Insulin,Food,Drink,,Time,BG,Insulin,Food,Drink,,Time,BG,Insulin
|
3
|
+
2012-06-28,,10:00:00,6.1,4,"Bacon, toast",Tea,,13:45:00,4.3,4,Haloumi salad,,Banana,19:00:00,5.7,8,Turkey stir-fry,Prosecco,Fun-size Twix,22:45:00,5.7,14
|
4
|
+
2012-06-29,58,08:45:00,3.9,4,Eggs on toast,Tea,,13:00:00,5.6,6,Fishfinger sandwich,,"Crisps, prosecco",20:30:00,15.2,6,Japanese takeaway,Beer,,01:00:00,9.9,14
|
5
|
+
2012-06-30,,11:00:00,7.0,,,,,12:00:00,,6,"Bacon, eggs, mushrooms, beans, toast",Tea,,19:00:00,4.4,6,"Prawns, egg-fried rice",,,23:30:00,17.5,14
|
6
|
+
2012-07-01,,09:30:00,6.4,4,"Boiled eggs, toast",Tea,,,,,,,,,,,,,,,,
|
data/files/on_track.csv
CHANGED
@@ -1,18 +1,41 @@
|
|
1
|
+
343,"Jul 4, 2012 11:04:56 PM",Medication,Lantus,Bedtime,12.0,""
|
2
|
+
342,"Jul 4, 2012 10:09:11 PM",Glucose,,Bedtime,9.2,"B:4 pints
|
3
|
+
N: new pot of strips"
|
4
|
+
341,"Jul 4, 2012 6:16:28 PM",Medication,Humalog,Dinner,5.0,"F: picnic box (Leon)"
|
5
|
+
340,"Jul 4, 2012 6:14:12 PM",Glucose,,Dinner,4.4,""
|
6
|
+
339,"Jul 4, 2012 12:53:16 PM",Medication,Humalog,Lunch,4.0,"F: salmon and tuna tartare salad (Itsu), crisps"
|
7
|
+
338,"Jul 4, 2012 12:53:09 PM",Glucose,,Lunch,5.6,""
|
8
|
+
337,"Jul 4, 2012 11:23:37 AM",Glucose,,,6.6,""
|
9
|
+
335,"Jul 4, 2012 8:43:04 AM",Exercise,Walking,After Breakfast,20.0,""
|
10
|
+
334,"Jul 4, 2012 7:44:42 AM",Food,,Breakfast,36.0,""
|
11
|
+
333,"Jul 4, 2012 7:28:40 AM",Medication,Humalog,Breakfast,3.0,"F: egg on toast"
|
12
|
+
332,"Jul 4, 2012 7:27:37 AM",Glucose,,Breakfast,4.1,""
|
13
|
+
302,"Jul 1, 2012 10:46:12 PM",Medication,Lantus,Bedtime,14.0,""
|
14
|
+
301,"Jul 1, 2012 10:32:32 PM",Glucose,,Bedtime,7.5,""
|
15
|
+
300,"Jul 1, 2012 9:06:01 PM",Glucose,,After Dinner,3.5,""
|
16
|
+
299,"Jul 1, 2012 7:03:37 PM",Medication,Humalog,Dinner,6.0,"F:Roast chicken dinner"
|
17
|
+
298,"Jul 1, 2012 6:56:25 PM",Glucose,,Dinner,4.9,""
|
18
|
+
297,"Jul 1, 2012 2:03:05 PM",Medication,Humalog,Lunch,4.0,"F: prawns, avocado, mayonnaise, bruschetta"
|
19
|
+
296,"Jul 1, 2012 1:54:04 PM",Glucose,,Lunch,5.0,""
|
20
|
+
295,"Jul 1, 2012 12:40:43 PM",Weight,,Lunch,59.0,""
|
21
|
+
294,"Jul 1, 2012 9:57:09 AM",Medication,Humalog,Breakfast,4.0,"Boiled eggs, toast"
|
22
|
+
293,"Jul 1, 2012 9:41:47 AM",Glucose,,Breakfast,6.4,""
|
23
|
+
292,"Jul 1, 2012 12:40:24 AM",Medication,Lantus,Bedtime,14.0,""
|
24
|
+
291,"Jun 30, 2012 11:14:04 PM",Glucose,,Bedtime,17.5,"D:m"
|
25
|
+
290,"Jun 30, 2012 7:56:20 PM",Glucose,,After Dinner,7.0,""
|
26
|
+
289,"Jun 30, 2012 7:07:42 PM",Medication,Humalog,Dinner,6.0,"Prawns, egg-fried rice"
|
27
|
+
288,"Jun 30, 2012 6:24:50 PM",Glucose,,Dinner,4.4,""
|
1
28
|
287,"Jun 30, 2012 1:55:02 PM",Glucose,,After Lunch,3.6,"N: new pot of strips"
|
2
29
|
286,"Jun 30, 2012 12:07:56 PM",Medication,Humalog,Lunch,6.0,"F: fry-up"
|
30
|
+
285,"Jun 30, 2012 11:09:53 AM",Glucose,,Breakfast,7.0,"N: slept late. It's going to be brunch today"
|
31
|
+
283,"Jun 30, 2012 1:04:53 AM",Glucose,,Bedtime,9.9,""
|
32
|
+
284,"Jun 30, 2012 1:04:53 AM",Medication,Lantus,Bedtime,14.0,""
|
33
|
+
282,"Jun 29, 2012 10:59:13 PM",Glucose,,After Dinner,10.4,""
|
3
34
|
281,"Jun 29, 2012 8:46:58 PM",Medication,Humalog,Dinner,6.0,"F: Japanese takeaway"
|
35
|
+
280,"Jun 29, 2012 8:16:52 PM",Glucose,,Dinner,15.2,"B:prosecco"
|
36
|
+
279,"Jun 29, 2012 6:29:58 PM",Glucose,,,3.8,""
|
4
37
|
278,"Jun 29, 2012 1:02:13 PM",Medication,Humalog,Lunch,6.0,"Fishfinger sandwich, salad"
|
5
38
|
277,"Jun 29, 2012 1:02:04 PM",Glucose,,Lunch,5.6,""
|
6
39
|
276,"Jun 29, 2012 10:00:54 AM",Weight,,Breakfast,58.0,""
|
7
40
|
275,"Jun 29, 2012 8:45:13 AM",Medication,Humalog,Breakfast,4.0,"F:2 eggs, 2 toast"
|
8
41
|
274,"Jun 29, 2012 8:37:47 AM",Glucose,,Breakfast,3.9,""
|
9
|
-
273,"Jun 28, 2012 10:52:14 PM",Medication,Lantus,Bedtime,14.0,""
|
10
|
-
272,"Jun 28, 2012 10:46:13 PM",Glucose,,Bedtime,5.7,""
|
11
|
-
271,"Jun 28, 2012 7:30:50 PM",Medication,Humalog,Dinner,8.0,"F: turkey stir-fry"
|
12
|
-
270,"Jun 28, 2012 7:06:35 PM",Glucose,,Dinner,5.7,""
|
13
|
-
268,"Jun 28, 2012 1:52:47 PM",Medication,Humalog,Lunch,4.0,"F: haloumi salad"
|
14
|
-
267,"Jun 28, 2012 1:35:50 PM",Glucose,,Lunch,4.3,""
|
15
|
-
266,"Jun 28, 2012 10:21:05 AM",Medication,Humalog,Breakfast,4.0,"F:2 bacon, 2 toast
|
16
|
-
N:test note"
|
17
|
-
265,"Jun 28, 2012 9:42:17 AM",Glucose,,Breakfast,6.1,""
|
18
|
-
262,"Jun 27, 2012 11:58:07 PM",Exercise,Drumming,,120.0,""
|
data/insulin.gemspec
CHANGED
data/lib/insulin.rb
CHANGED
data/lib/insulin/day.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'insulin'
|
2
|
+
|
3
|
+
module Insulin
|
4
|
+
class Day < Hash
|
5
|
+
def initialize date, mongo
|
6
|
+
@date = date
|
7
|
+
@mongo = mongo
|
8
|
+
|
9
|
+
keys = [
|
10
|
+
"type",
|
11
|
+
"subtype",
|
12
|
+
"tag"
|
13
|
+
]
|
14
|
+
self["all"] = []
|
15
|
+
|
16
|
+
@mongo.db.collection(date).find().each do |e|
|
17
|
+
ev = Insulin::Event.new(e)
|
18
|
+
keys.each do |k|
|
19
|
+
sub = ev[k]
|
20
|
+
if self[sub]
|
21
|
+
self[sub] << ev
|
22
|
+
else
|
23
|
+
self[sub] = [ev]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
self["all"] << ev
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def average_glucose
|
32
|
+
t = 0
|
33
|
+
c = 0
|
34
|
+
self["glucose"].each do |g|
|
35
|
+
@glucose_units = g["units"]
|
36
|
+
t += g["value"]
|
37
|
+
c += 1
|
38
|
+
end
|
39
|
+
|
40
|
+
return t / c
|
41
|
+
end
|
42
|
+
|
43
|
+
def to_s
|
44
|
+
s = ""
|
45
|
+
s << @date
|
46
|
+
s << "\n"
|
47
|
+
|
48
|
+
self["all"].each do |e|
|
49
|
+
s << e.simple
|
50
|
+
s << "\n"
|
51
|
+
end
|
52
|
+
|
53
|
+
s << " Average glucose: %4.2f %s" % [
|
54
|
+
self.average_glucose,
|
55
|
+
@glucose_units
|
56
|
+
]
|
57
|
+
s
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/insulin/event.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'time'
|
2
|
+
|
1
3
|
module Insulin
|
2
4
|
# Author:: Sam (mailto:sam@cruft.co)
|
3
5
|
# License:: MIT
|
@@ -5,20 +7,39 @@ module Insulin
|
|
5
7
|
# This class represents a single OnTrack event (BG, meds, etc)
|
6
8
|
class Event < Hash
|
7
9
|
|
10
|
+
@@units = {
|
11
|
+
"glucose" => "mmol/L",
|
12
|
+
"medication" => "x10^-5 L",
|
13
|
+
"weight" => "kg",
|
14
|
+
"exercise" => "minutes"
|
15
|
+
}
|
16
|
+
|
17
|
+
# An event before this time is considered part of the previous day. Because
|
18
|
+
# sometimes, we stay up late
|
19
|
+
@@cut_off_time = "04:00"
|
20
|
+
|
8
21
|
# We expect to be passed a hash
|
9
22
|
def initialize h
|
10
23
|
self.update h
|
24
|
+
|
25
|
+
self["units"] = @@units[self["type"]]
|
11
26
|
end
|
12
27
|
|
13
28
|
# Save the event to Mongo via mongo_handle
|
14
29
|
def save mongo_handle
|
15
30
|
|
31
|
+
# See above
|
32
|
+
date_collection = self["date"]
|
33
|
+
if self["time"] < @@cut_off_time
|
34
|
+
date_collection = (Time.parse(self["date"]) - 86400).strftime "%F"
|
35
|
+
end
|
36
|
+
|
16
37
|
# Save to each of these collections
|
17
38
|
clxns = [
|
18
39
|
"events",
|
19
40
|
self["type"],
|
20
41
|
self["subtype"],
|
21
|
-
|
42
|
+
date_collection
|
22
43
|
]
|
23
44
|
|
24
45
|
clxns.each do |c|
|
@@ -36,5 +57,17 @@ module Insulin
|
|
36
57
|
end
|
37
58
|
end
|
38
59
|
end
|
60
|
+
|
61
|
+
def simple
|
62
|
+
s = " %s %-10s %-10s %4.1f %s" % [
|
63
|
+
self["time"],
|
64
|
+
self["type"],
|
65
|
+
self["subtype"],
|
66
|
+
self["value"],
|
67
|
+
self["units"]
|
68
|
+
]
|
69
|
+
|
70
|
+
s
|
71
|
+
end
|
39
72
|
end
|
40
73
|
end
|
@@ -51,11 +51,11 @@ module Insulin
|
|
51
51
|
|
52
52
|
# Save the events to Mongo
|
53
53
|
def save_events mongo
|
54
|
-
print "saving %d events to mongo... " % @events.count
|
54
|
+
# print "saving %d events to mongo... " % @events.count
|
55
55
|
@events.each do |e|
|
56
56
|
e.save mongo
|
57
57
|
end
|
58
|
-
puts "done"
|
58
|
+
# puts "done"
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
data/lib/insulin/version.rb
CHANGED
data/scripts/build.sh
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'insulin'
|
2
|
+
require "spec_helper.rb"
|
3
|
+
|
4
|
+
describe Insulin::Day do
|
5
|
+
load_test_db
|
6
|
+
|
7
|
+
d = Insulin::Day.new "2012-06-30", @mongo
|
8
|
+
|
9
|
+
it "should contain something" do
|
10
|
+
d.keys.size.should > 0
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should have events" do
|
14
|
+
d.keys.each do |k|
|
15
|
+
d[k].each do |e|
|
16
|
+
e.class.name.should == "Insulin::Event"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should have glucose events" do
|
22
|
+
d["glucose"].each do |g|
|
23
|
+
g["type"].should == "glucose"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should have at most 1 lantus event" do
|
28
|
+
d["lantus"].size.should < 2
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should display correctly" do
|
32
|
+
d.to_s.should include "19:07:42 BST medication humalog 6.0 x10^-5 L"
|
33
|
+
end
|
34
|
+
|
35
|
+
drop_test_db
|
36
|
+
end
|
data/spec/insulin_event_spec.rb
CHANGED
@@ -10,6 +10,10 @@ N:other note"}
|
|
10
10
|
event["type"].should == "medication"
|
11
11
|
end
|
12
12
|
|
13
|
+
it "should have the correct units" do
|
14
|
+
event["units"].should == "x10^-5 L"
|
15
|
+
end
|
16
|
+
|
13
17
|
conf = Insulin::Config.new 'conf/insulin_dev.yaml'
|
14
18
|
mconf = conf.get_section "mongo"
|
15
19
|
mongo = Insulin::MongoHandle.new mconf
|
@@ -42,6 +46,22 @@ N:other note"}
|
|
42
46
|
it "saved event should have correct value" do
|
43
47
|
item["value"].should == 4.0
|
44
48
|
end
|
49
|
+
|
50
|
+
it "saved event should have correct units" do
|
51
|
+
item["units"].should == "x10^-5 L"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
mongo_event = Insulin::Event.new mongo.db.collection("events").find_one(
|
56
|
+
{"serial" => 266}
|
57
|
+
)
|
58
|
+
|
59
|
+
it "loaded event should have correct date" do
|
60
|
+
mongo_event["date"].should == "2012-06-28"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "loaded event should have correct time" do
|
64
|
+
mongo_event["time"].should == "10:21:05 BST"
|
45
65
|
end
|
46
66
|
|
47
67
|
mongo.drop_db
|
@@ -11,16 +11,15 @@ describe Insulin::OnTrackCsvFile do
|
|
11
11
|
csv_file.lines[0].class.name.should == "Insulin::OnTrackCsvLine"
|
12
12
|
end
|
13
13
|
|
14
|
-
it "line with serial
|
14
|
+
it "line with serial 342 should have proper noteset" do
|
15
15
|
csv_file.lines.each do |c|
|
16
|
-
if c["serial"] ==
|
16
|
+
if c["serial"] == 342
|
17
17
|
c["notes"].should == {
|
18
|
-
"
|
19
|
-
"
|
20
|
-
"2 toast"
|
18
|
+
"booze"=>[
|
19
|
+
"4 pints"
|
21
20
|
],
|
22
21
|
"note"=>[
|
23
|
-
"
|
22
|
+
"new pot of strips"
|
24
23
|
]
|
25
24
|
}
|
26
25
|
end
|
@@ -51,7 +50,18 @@ describe Insulin::OnTrackCsvFile do
|
|
51
50
|
|
52
51
|
it "should save events" do
|
53
52
|
csv_file.save_events @mongo
|
54
|
-
@mongo.db.collection("events").count.should >=
|
53
|
+
@mongo.db.collection("events").count.should >= 40
|
54
|
+
end
|
55
|
+
|
56
|
+
it "small-hours event should be assigned to previous-date collection" do
|
57
|
+
l = @mongo.db.collection("2012-06-30").find_one( { "serial" => 292 } )
|
58
|
+
l.should_not == nil
|
59
|
+
l["date"].should == "2012-07-01"
|
60
|
+
end
|
61
|
+
|
62
|
+
it "small-hours event should not appear in actual-date collection" do
|
63
|
+
l = @mongo.db.collection("2012-06-01").find_one( { "serial" => 292 } )
|
64
|
+
l.should == nil
|
55
65
|
end
|
56
66
|
|
57
67
|
after :all do
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'insulin'
|
2
|
+
|
3
|
+
@mongo
|
4
|
+
|
5
|
+
def load_test_db
|
6
|
+
config = Insulin::Config.new 'conf/insulin_dev.yaml'
|
7
|
+
mconf = config.get_section "mongo"
|
8
|
+
@mongo = Insulin::MongoHandle.new mconf
|
9
|
+
|
10
|
+
csv = Insulin::OnTrackCsvFile.new "files/on_track.csv"
|
11
|
+
csv.save_events @mongo
|
12
|
+
end
|
13
|
+
|
14
|
+
def drop_test_db
|
15
|
+
@mongo.drop_db
|
16
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: insulin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -59,6 +59,22 @@ dependencies:
|
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: ffi
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
62
78
|
- !ruby/object:Gem::Dependency
|
63
79
|
name: rspec
|
64
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,10 +142,12 @@ files:
|
|
126
142
|
- bin/insulin
|
127
143
|
- conf/insulin.yaml
|
128
144
|
- conf/insulin_dev.yaml
|
145
|
+
- files/google_spreadsheet.csv
|
129
146
|
- files/on_track.csv
|
130
147
|
- insulin.gemspec
|
131
148
|
- lib/insulin.rb
|
132
149
|
- lib/insulin/config.rb
|
150
|
+
- lib/insulin/day.rb
|
133
151
|
- lib/insulin/event.rb
|
134
152
|
- lib/insulin/mongo_handle.rb
|
135
153
|
- lib/insulin/on_track_csv_file.rb
|
@@ -138,7 +156,9 @@ files:
|
|
138
156
|
- lib/insulin/on_track_note.rb
|
139
157
|
- lib/insulin/on_track_note_set.rb
|
140
158
|
- lib/insulin/version.rb
|
159
|
+
- scripts/build.sh
|
141
160
|
- spec/insulin_config_spec.rb
|
161
|
+
- spec/insulin_day_spec.rb
|
142
162
|
- spec/insulin_event_spec.rb
|
143
163
|
- spec/insulin_mongo_handle_spec.rb
|
144
164
|
- spec/insulin_on_track_csv_file_spec.rb
|
@@ -146,6 +166,7 @@ files:
|
|
146
166
|
- spec/insulin_on_track_date_spec.rb
|
147
167
|
- spec/insulin_on_track_note_set_spec.rb
|
148
168
|
- spec/insulin_on_track_note_spec.rb
|
169
|
+
- spec/spec_helper.rb
|
149
170
|
homepage: http://pikesley.github.com/insulin/
|
150
171
|
licenses: []
|
151
172
|
post_install_message:
|
@@ -172,6 +193,7 @@ specification_version: 3
|
|
172
193
|
summary: Doing stuff with my diabetes data
|
173
194
|
test_files:
|
174
195
|
- spec/insulin_config_spec.rb
|
196
|
+
- spec/insulin_day_spec.rb
|
175
197
|
- spec/insulin_event_spec.rb
|
176
198
|
- spec/insulin_mongo_handle_spec.rb
|
177
199
|
- spec/insulin_on_track_csv_file_spec.rb
|
@@ -179,3 +201,4 @@ test_files:
|
|
179
201
|
- spec/insulin_on_track_date_spec.rb
|
180
202
|
- spec/insulin_on_track_note_set_spec.rb
|
181
203
|
- spec/insulin_on_track_note_spec.rb
|
204
|
+
- spec/spec_helper.rb
|