medic 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +210 -10
- data/lib/medic.rb +1 -3
- data/lib/medic/anchor.rb +32 -0
- data/lib/medic/anchored_object_query.rb +18 -0
- data/lib/medic/correlation_query.rb +22 -0
- data/lib/medic/finders.rb +122 -0
- data/lib/medic/hk_constants.rb +76 -0
- data/lib/medic/interval.rb +29 -0
- data/lib/medic/medic.rb +68 -1
- data/lib/medic/observer_query.rb +15 -0
- data/lib/medic/predicate.rb +39 -0
- data/lib/medic/query_options.rb +23 -0
- data/lib/medic/sample_query.rb +22 -0
- data/lib/medic/sort.rb +24 -0
- data/lib/medic/source_query.rb +15 -0
- data/lib/medic/statistics_collection_query.rb +39 -0
- data/lib/medic/statistics_options.rb +31 -0
- data/lib/medic/statistics_query.rb +17 -0
- data/lib/medic/store.rb +117 -0
- data/lib/medic/types.rb +100 -0
- data/lib/medic/version.rb +1 -1
- data/spec/medic/anchor.rb +16 -0
- data/spec/medic/anchored_object_query_spec.rb +12 -0
- data/spec/medic/correlation_query_spec.rb +16 -0
- data/spec/medic/hk_constants_spec.rb +67 -0
- data/spec/medic/interval_spec.rb +16 -0
- data/spec/medic/medic_spec.rb +153 -0
- data/spec/medic/observer_query_spec.rb +12 -0
- data/spec/medic/predicate_spec.rb +27 -0
- data/spec/medic/query_options_spec.rb +24 -0
- data/spec/medic/sample_query_spec.rb +12 -0
- data/spec/medic/sort_spec.rb +26 -0
- data/spec/medic/source_query_spec.rb +12 -0
- data/spec/medic/statistics_collection_query_spec.rb +27 -0
- data/spec/medic/statistics_options_spec.rb +32 -0
- data/spec/medic/statistics_query_spec.rb +12 -0
- data/spec/medic/store_spec.rb +159 -0
- data/spec/medic/types_spec.rb +95 -0
- metadata +72 -9
- data/spec/main_spec.rb +0 -9
@@ -0,0 +1,12 @@
|
|
1
|
+
describe "Medic::SampleQuery" do
|
2
|
+
|
3
|
+
before do
|
4
|
+
@subject = Medic::SampleQuery.new type: :dietary_protein, limit: 7 do |query, results, error|
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
it "is a subclass of HKSampleQuery" do
|
9
|
+
@subject.should.be.kind_of? HKSampleQuery
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
describe "Medic::Sort" do
|
2
|
+
|
3
|
+
before do
|
4
|
+
@subject = Object.new
|
5
|
+
@subject.extend(Medic::Sort)
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "#sort_descriptors" do
|
9
|
+
it "returns an array of NSSortDescriptor objects" do
|
10
|
+
@subject.sort_descriptors(:start_date).should.all? { |sd| sd.kind_of? NSSortDescriptor }
|
11
|
+
@subject.sort_descriptors([:start_date, :end_date]).should.all? { |sd| sd.kind_of? NSSortDescriptor }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#sort_identifier" do
|
16
|
+
it "returns the correct sort_identifier for symbol" do
|
17
|
+
@subject.sort_identifier(:start_date).should == HKSampleSortIdentifierStartDate
|
18
|
+
@subject.sort_identifier(:end_date).should == HKSampleSortIdentifierEndDate
|
19
|
+
end
|
20
|
+
|
21
|
+
it "passes through the argument if not a symbol" do
|
22
|
+
@subject.sort_identifier(NSSortDescriptor).should == NSSortDescriptor
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
describe "Medic::StatisticsCollectionQuery" do
|
2
|
+
|
3
|
+
before do
|
4
|
+
@interval = NSDateComponents.new
|
5
|
+
@interval.day = 1
|
6
|
+
@subject = Medic::StatisticsCollectionQuery.new(type: :step_count, options: :sum, interval: @interval)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "is a subclass of HKStatisticsCollectionQuery" do
|
10
|
+
@subject.should.be.kind_of? HKStatisticsCollectionQuery
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "#initial_results_handler=" do
|
14
|
+
it "sets initialResultsHandler with callback" do
|
15
|
+
@subject.initial_results_handler = ->(){}
|
16
|
+
@subject.initialResultsHandler.should.respond_to? :call
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "#statistics_update_handler=" do
|
21
|
+
it "sets statisticsUpdateHandler with callback" do
|
22
|
+
@subject.statistics_update_handler = ->(){}
|
23
|
+
@subject.statisticsUpdateHandler.should.respond_to? :call
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
describe "Medic::StatisticsOptions" do
|
2
|
+
|
3
|
+
before do
|
4
|
+
@subject = Object.new
|
5
|
+
@subject.extend(Medic::StatisticsOptions)
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "#options_for_stat_query" do
|
9
|
+
it "correctly calculates the value for options" do
|
10
|
+
@subject.options_for_stat_query(:none).should == 0
|
11
|
+
@subject.options_for_stat_query([:by_source, :sum]).should == 17
|
12
|
+
@subject.options_for_stat_query([:average, :min, :max]).should == 14
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#statistics_option" do
|
17
|
+
it "returns the correct type identifier for symbol" do
|
18
|
+
@subject.statistics_option(:none).should == HKStatisticsOptionNone
|
19
|
+
@subject.statistics_option(:by_source).should == HKStatisticsOptionSeparateBySource
|
20
|
+
@subject.statistics_option(:separate_by_source).should == HKStatisticsOptionSeparateBySource
|
21
|
+
@subject.statistics_option(:average).should == HKStatisticsOptionDiscreteAverage
|
22
|
+
@subject.statistics_option(:discrete_average).should == HKStatisticsOptionDiscreteAverage
|
23
|
+
@subject.statistics_option(:min).should == HKStatisticsOptionDiscreteMin
|
24
|
+
@subject.statistics_option(:discrete_min).should == HKStatisticsOptionDiscreteMin
|
25
|
+
@subject.statistics_option(:max).should == HKStatisticsOptionDiscreteMax
|
26
|
+
@subject.statistics_option(:discrete_max).should == HKStatisticsOptionDiscreteMax
|
27
|
+
@subject.statistics_option(:sum).should == HKStatisticsOptionCumulativeSum
|
28
|
+
@subject.statistics_option(:cumulative_sum).should == HKStatisticsOptionCumulativeSum
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
describe "Medic::StatisticsQuery" do
|
2
|
+
|
3
|
+
before do
|
4
|
+
@subject = Medic::StatisticsQuery.new type: :step_count, options: :sum do |query, results, error|
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
it "is a subclass of HKStatisticsQuery" do
|
9
|
+
@subject.should.be.kind_of? HKStatisticsQuery
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
@@ -0,0 +1,159 @@
|
|
1
|
+
describe "Medic::Store" do
|
2
|
+
|
3
|
+
before do
|
4
|
+
@subject = Medic::Store.new
|
5
|
+
end
|
6
|
+
|
7
|
+
describe "#authorize" do
|
8
|
+
it "calls #requestAuthorizationToShareTypes:readTypes:completion with correct args" do
|
9
|
+
@subject.mock! 'requestAuthorizationToShareTypes:readTypes:completion' do |share, read, comp|
|
10
|
+
share.should.be.kind_of? NSSet
|
11
|
+
read.should.be.kind_of? NSSet
|
12
|
+
comp.should.respond_to? :call
|
13
|
+
true
|
14
|
+
end
|
15
|
+
@subject.authorize(read: :step_count){|success, error|}.should == true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "#authorized?" do
|
20
|
+
it "calls #authorizationStatusForType with correct args" do
|
21
|
+
@subject.mock! 'authorizationStatusForType' do |type|
|
22
|
+
type.should.be.kind_of? HKObjectType
|
23
|
+
false
|
24
|
+
end
|
25
|
+
@subject.authorized?(:step_count).should == false
|
26
|
+
end
|
27
|
+
|
28
|
+
it "has an #is_authorized? alias" do
|
29
|
+
@subject.method(:is_authorized?).should == @subject.method(:authorized?)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "has an #authorized_for? alias" do
|
33
|
+
@subject.method(:authorized_for?).should == @subject.method(:authorized?)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "has an #is_authorized_for? alias" do
|
37
|
+
@subject.method(:is_authorized_for?).should == @subject.method(:authorized?)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "#biological_sex" do
|
42
|
+
it "calls #biologicalSexWithError with correct args" do
|
43
|
+
@subject.mock! 'biologicalSexWithError' do |error|
|
44
|
+
error.should.be.kind_of? Pointer
|
45
|
+
mock(:biologicalSex, return: HKBiologicalSexFemale)
|
46
|
+
end
|
47
|
+
@subject.biological_sex.should == :female
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "#blood_type" do
|
52
|
+
it "calls #bloodTypeWithError with correct args" do
|
53
|
+
@subject.mock! 'bloodTypeWithError' do |error|
|
54
|
+
error.should.be.kind_of? Pointer
|
55
|
+
mock(:bloodType, return: HKBloodTypeONegative)
|
56
|
+
end
|
57
|
+
@subject.blood_type.should == :o_negative
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe "#date_of_birth" do
|
62
|
+
it "calls #dateOfBirthWithError with correct args" do
|
63
|
+
@subject.mock! 'dateOfBirthWithError' do |error|
|
64
|
+
error.should.be.kind_of? Pointer
|
65
|
+
true
|
66
|
+
end
|
67
|
+
@subject.date_of_birth.should == true
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "#save" do
|
72
|
+
it "calls #saveObject:withCompletion with correct args" do
|
73
|
+
@subject.mock! 'saveObjects:withCompletion' do |object, comp|
|
74
|
+
object.first.should.be.kind_of? HKObjectType
|
75
|
+
comp.should.respond_to? :call
|
76
|
+
end
|
77
|
+
steps = @subject.object_type(:step_count)
|
78
|
+
@subject.save(steps){|success, error|}
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "#delete" do
|
83
|
+
it "calls #deleteObject:withCompletion with correct args" do
|
84
|
+
@subject.mock! 'deleteObject:withCompletion' do |object, comp|
|
85
|
+
object.should.be.kind_of? HKObjectType
|
86
|
+
comp.should.respond_to? :call
|
87
|
+
end
|
88
|
+
steps = @subject.object_type(:step_count)
|
89
|
+
@subject.delete(steps){|success, error|}
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe "#execute" do
|
94
|
+
it "calls #executeQuery with correct args" do
|
95
|
+
@subject.mock! 'executeQuery' do |query|
|
96
|
+
query.should.be.kind_of? HKQuery
|
97
|
+
end
|
98
|
+
query = HKSampleQuery.alloc.initWithSampleType(@subject.object_type(:step_count), predicate:nil, limit:HKObjectQueryNoLimit, sortDescriptors:nil, resultsHandler:->(q,r,e){})
|
99
|
+
@subject.execute(query)
|
100
|
+
end
|
101
|
+
|
102
|
+
it "has an #execute_query alias" do
|
103
|
+
@subject.method(:execute_query).should == @subject.method(:execute)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe "#stop" do
|
108
|
+
it "calls #stopQuery with correct args" do
|
109
|
+
@subject.mock! 'stopQuery' do |query|
|
110
|
+
query.should.be.kind_of? HKQuery
|
111
|
+
end
|
112
|
+
query = HKSampleQuery.alloc.initWithSampleType(@subject.object_type(:step_count), predicate:nil, limit:HKObjectQueryNoLimit, sortDescriptors:nil, resultsHandler:->(q,r,e){})
|
113
|
+
@subject.stop(query)
|
114
|
+
end
|
115
|
+
|
116
|
+
it "has an #stop_query alias" do
|
117
|
+
@subject.method(:stop_query).should == @subject.method(:stop)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
describe "#enable_background_delivery" do
|
122
|
+
it "calls #enableBackgroundDeliveryForType with correct args" do
|
123
|
+
@subject.mock! 'enableBackgroundDeliveryForType:frequency:withCompletion' do |type, freq, comp|
|
124
|
+
type.should.be.kind_of? HKObjectType
|
125
|
+
freq.should == HKUpdateFrequencyWeekly
|
126
|
+
comp.should.respond_to? :call
|
127
|
+
end
|
128
|
+
@subject.enable_background_delivery(:step_count, :weekly){|success, error|}
|
129
|
+
end
|
130
|
+
|
131
|
+
it "has an #enable_background_delivery_for alias" do
|
132
|
+
@subject.method(:enable_background_delivery_for).should == @subject.method(:enable_background_delivery)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
describe "#disable_background_delivery" do
|
137
|
+
it "calls #disableBackgroundDeliveryForType:withCompletion with correct args" do
|
138
|
+
@subject.mock! 'disableBackgroundDeliveryForType:withCompletion' do |type, comp|
|
139
|
+
type.should.be.kind_of? HKObjectType
|
140
|
+
comp.should.respond_to? :call
|
141
|
+
end
|
142
|
+
@subject.disable_background_delivery(:step_count){|success, error|}
|
143
|
+
end
|
144
|
+
|
145
|
+
it "has a #disable_background_delivery_for alias" do
|
146
|
+
@subject.method(:disable_background_delivery_for).should == @subject.method(:disable_background_delivery)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
describe "#disable_all_background_delivery" do
|
151
|
+
it "calls #disableAllBackgroundDeliveryWithCompletion with correct args" do
|
152
|
+
@subject.mock! 'disableAllBackgroundDeliveryWithCompletion' do |comp|
|
153
|
+
comp.should.respond_to? :call
|
154
|
+
end
|
155
|
+
@subject.disable_all_background_delivery{|success, error|}
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
describe "Medic::Types" do
|
2
|
+
|
3
|
+
before do
|
4
|
+
@subject = Object.new
|
5
|
+
@subject.extend(Medic::Types)
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "#object_type" do
|
9
|
+
it "returns the correct object type for symbol" do
|
10
|
+
@subject.object_type(:step_count).should.be.kind_of? HKQuantityType
|
11
|
+
@subject.object_type(:food).should.be.kind_of? HKCorrelationType
|
12
|
+
@subject.object_type(:blood_type).should.be.kind_of? HKCharacteristicType
|
13
|
+
@subject.object_type(:sleep_analysis).should.be.kind_of? HKCategoryType
|
14
|
+
@subject.object_type(:workout).should.be.kind_of? HKWorkoutType
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "#type_identifier" do
|
19
|
+
it "returns the correct type identifier for symbol" do
|
20
|
+
@subject.type_identifier(:body_mass_index).should == HKQuantityTypeIdentifierBodyMassIndex
|
21
|
+
@subject.type_identifier(:body_fat_percentage).should == HKQuantityTypeIdentifierBodyFatPercentage
|
22
|
+
@subject.type_identifier(:height).should == HKQuantityTypeIdentifierHeight
|
23
|
+
@subject.type_identifier(:body_mass).should == HKQuantityTypeIdentifierBodyMass
|
24
|
+
@subject.type_identifier(:lean_body_mass).should == HKQuantityTypeIdentifierLeanBodyMass
|
25
|
+
@subject.type_identifier(:step_count).should == HKQuantityTypeIdentifierStepCount
|
26
|
+
@subject.type_identifier(:distance_walking_running).should == HKQuantityTypeIdentifierDistanceWalkingRunning
|
27
|
+
@subject.type_identifier(:distance_cycling).should == HKQuantityTypeIdentifierDistanceCycling
|
28
|
+
@subject.type_identifier(:basal_energy_burned).should == HKQuantityTypeIdentifierBasalEnergyBurned
|
29
|
+
@subject.type_identifier(:active_energy_burned).should == HKQuantityTypeIdentifierActiveEnergyBurned
|
30
|
+
@subject.type_identifier(:flights_climbed).should == HKQuantityTypeIdentifierFlightsClimbed
|
31
|
+
@subject.type_identifier(:nike_fuel).should == HKQuantityTypeIdentifierNikeFuel
|
32
|
+
@subject.type_identifier(:heart_rate).should == HKQuantityTypeIdentifierHeartRate
|
33
|
+
@subject.type_identifier(:body_temperature).should == HKQuantityTypeIdentifierBodyTemperature
|
34
|
+
@subject.type_identifier(:blood_pressure_systolic).should == HKQuantityTypeIdentifierBloodPressureSystolic
|
35
|
+
@subject.type_identifier(:blood_pressure_diastolic).should == HKQuantityTypeIdentifierBloodPressureDiastolic
|
36
|
+
@subject.type_identifier(:respiratory_rate).should == HKQuantityTypeIdentifierRespiratoryRate
|
37
|
+
@subject.type_identifier(:oxygen_saturation).should == HKQuantityTypeIdentifierOxygenSaturation
|
38
|
+
@subject.type_identifier(:peripheral_perfusion_index).should == HKQuantityTypeIdentifierPeripheralPerfusionIndex
|
39
|
+
@subject.type_identifier(:blood_glucose).should == HKQuantityTypeIdentifierBloodGlucose
|
40
|
+
@subject.type_identifier(:number_of_times_fallen).should == HKQuantityTypeIdentifierNumberOfTimesFallen
|
41
|
+
@subject.type_identifier(:electrodermal_activity).should == HKQuantityTypeIdentifierElectrodermalActivity
|
42
|
+
@subject.type_identifier(:inhaler_usage).should == HKQuantityTypeIdentifierInhalerUsage
|
43
|
+
@subject.type_identifier(:blood_alcohol_content).should == HKQuantityTypeIdentifierBloodAlcoholContent
|
44
|
+
@subject.type_identifier(:forced_vital_capacity).should == HKQuantityTypeIdentifierForcedVitalCapacity
|
45
|
+
@subject.type_identifier(:forced_expiratory_volume1).should == HKQuantityTypeIdentifierForcedExpiratoryVolume1
|
46
|
+
@subject.type_identifier(:peak_expiratory_flow_rate).should == HKQuantityTypeIdentifierPeakExpiratoryFlowRate
|
47
|
+
@subject.type_identifier(:dietary_biotin).should == HKQuantityTypeIdentifierDietaryBiotin
|
48
|
+
@subject.type_identifier(:dietary_caffeine).should == HKQuantityTypeIdentifierDietaryCaffeine
|
49
|
+
@subject.type_identifier(:dietary_calcium).should == HKQuantityTypeIdentifierDietaryCalcium
|
50
|
+
@subject.type_identifier(:dietary_carbohydrates).should == HKQuantityTypeIdentifierDietaryCarbohydrates
|
51
|
+
@subject.type_identifier(:dietary_chloride).should == HKQuantityTypeIdentifierDietaryChloride
|
52
|
+
@subject.type_identifier(:dietary_cholesterol).should == HKQuantityTypeIdentifierDietaryCholesterol
|
53
|
+
@subject.type_identifier(:dietary_chromium).should == HKQuantityTypeIdentifierDietaryChromium
|
54
|
+
@subject.type_identifier(:dietary_copper).should == HKQuantityTypeIdentifierDietaryCopper
|
55
|
+
@subject.type_identifier(:dietary_energy_consumed).should == HKQuantityTypeIdentifierDietaryEnergyConsumed
|
56
|
+
@subject.type_identifier(:dietary_fat_monounsaturated).should == HKQuantityTypeIdentifierDietaryFatMonounsaturated
|
57
|
+
@subject.type_identifier(:dietary_fat_polyunsaturated).should == HKQuantityTypeIdentifierDietaryFatPolyunsaturated
|
58
|
+
@subject.type_identifier(:dietary_fat_saturated).should == HKQuantityTypeIdentifierDietaryFatSaturated
|
59
|
+
@subject.type_identifier(:dietary_fat_total).should == HKQuantityTypeIdentifierDietaryFatTotal
|
60
|
+
@subject.type_identifier(:dietary_fiber).should == HKQuantityTypeIdentifierDietaryFiber
|
61
|
+
@subject.type_identifier(:dietary_folate).should == HKQuantityTypeIdentifierDietaryFolate
|
62
|
+
@subject.type_identifier(:dietary_iodine).should == HKQuantityTypeIdentifierDietaryIodine
|
63
|
+
@subject.type_identifier(:dietary_iron).should == HKQuantityTypeIdentifierDietaryIron
|
64
|
+
@subject.type_identifier(:dietary_magnesium).should == HKQuantityTypeIdentifierDietaryMagnesium
|
65
|
+
@subject.type_identifier(:dietary_manganese).should == HKQuantityTypeIdentifierDietaryManganese
|
66
|
+
@subject.type_identifier(:dietary_molybdenum).should == HKQuantityTypeIdentifierDietaryMolybdenum
|
67
|
+
@subject.type_identifier(:dietary_niacin).should == HKQuantityTypeIdentifierDietaryNiacin
|
68
|
+
@subject.type_identifier(:dietary_pantothenic_acid).should == HKQuantityTypeIdentifierDietaryPantothenicAcid
|
69
|
+
@subject.type_identifier(:dietary_phosphorus).should == HKQuantityTypeIdentifierDietaryPhosphorus
|
70
|
+
@subject.type_identifier(:dietary_potassium).should == HKQuantityTypeIdentifierDietaryPotassium
|
71
|
+
@subject.type_identifier(:dietary_protein).should == HKQuantityTypeIdentifierDietaryProtein
|
72
|
+
@subject.type_identifier(:dietary_riboflavin).should == HKQuantityTypeIdentifierDietaryRiboflavin
|
73
|
+
@subject.type_identifier(:dietary_selenium).should == HKQuantityTypeIdentifierDietarySelenium
|
74
|
+
@subject.type_identifier(:dietary_sodium).should == HKQuantityTypeIdentifierDietarySodium
|
75
|
+
@subject.type_identifier(:dietary_sugar).should == HKQuantityTypeIdentifierDietarySugar
|
76
|
+
@subject.type_identifier(:dietary_thiamin).should == HKQuantityTypeIdentifierDietaryThiamin
|
77
|
+
@subject.type_identifier(:dietary_vitamin_a).should == HKQuantityTypeIdentifierDietaryVitaminA
|
78
|
+
@subject.type_identifier(:dietary_vitamin_b12).should == HKQuantityTypeIdentifierDietaryVitaminB12
|
79
|
+
@subject.type_identifier(:dietary_vitamin_b6).should == HKQuantityTypeIdentifierDietaryVitaminB6
|
80
|
+
@subject.type_identifier(:dietary_vitamin_c).should == HKQuantityTypeIdentifierDietaryVitaminC
|
81
|
+
@subject.type_identifier(:dietary_vitamin_d).should == HKQuantityTypeIdentifierDietaryVitaminD
|
82
|
+
@subject.type_identifier(:dietary_vitamin_e).should == HKQuantityTypeIdentifierDietaryVitaminE
|
83
|
+
@subject.type_identifier(:dietary_vitamin_k).should == HKQuantityTypeIdentifierDietaryVitaminK
|
84
|
+
@subject.type_identifier(:dietary_zinc).should == HKQuantityTypeIdentifierDietaryZinc
|
85
|
+
@subject.type_identifier(:sleep_analysis).should == HKCategoryTypeIdentifierSleepAnalysis
|
86
|
+
@subject.type_identifier(:biological_sex).should == HKCharacteristicTypeIdentifierBiologicalSex
|
87
|
+
@subject.type_identifier(:blood_type).should == HKCharacteristicTypeIdentifierBloodType
|
88
|
+
@subject.type_identifier(:date_of_birth).should == HKCharacteristicTypeIdentifierDateOfBirth
|
89
|
+
@subject.type_identifier(:blood_pressure).should == HKCorrelationTypeIdentifierBloodPressure
|
90
|
+
@subject.type_identifier(:food).should == HKCorrelationTypeIdentifierFood
|
91
|
+
@subject.type_identifier(:workout).should == HKWorkoutTypeIdentifier
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
metadata
CHANGED
@@ -1,29 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: medic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Linton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '10'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '10'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: motion-stump
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.3'
|
27
41
|
description: RubyMotion Wrapper for HealthKit
|
28
42
|
email:
|
29
43
|
- ryanl@clearsightstudio.com
|
@@ -33,10 +47,43 @@ extra_rdoc_files: []
|
|
33
47
|
files:
|
34
48
|
- README.md
|
35
49
|
- lib/medic.rb
|
50
|
+
- lib/medic/anchor.rb
|
51
|
+
- lib/medic/anchored_object_query.rb
|
52
|
+
- lib/medic/correlation_query.rb
|
53
|
+
- lib/medic/finders.rb
|
54
|
+
- lib/medic/hk_constants.rb
|
55
|
+
- lib/medic/interval.rb
|
36
56
|
- lib/medic/medic.rb
|
57
|
+
- lib/medic/observer_query.rb
|
58
|
+
- lib/medic/predicate.rb
|
59
|
+
- lib/medic/query_options.rb
|
60
|
+
- lib/medic/sample_query.rb
|
61
|
+
- lib/medic/sort.rb
|
62
|
+
- lib/medic/source_query.rb
|
63
|
+
- lib/medic/statistics_collection_query.rb
|
64
|
+
- lib/medic/statistics_options.rb
|
65
|
+
- lib/medic/statistics_query.rb
|
66
|
+
- lib/medic/store.rb
|
67
|
+
- lib/medic/types.rb
|
37
68
|
- lib/medic/version.rb
|
38
|
-
- spec/
|
39
|
-
|
69
|
+
- spec/medic/anchor.rb
|
70
|
+
- spec/medic/anchored_object_query_spec.rb
|
71
|
+
- spec/medic/correlation_query_spec.rb
|
72
|
+
- spec/medic/hk_constants_spec.rb
|
73
|
+
- spec/medic/interval_spec.rb
|
74
|
+
- spec/medic/medic_spec.rb
|
75
|
+
- spec/medic/observer_query_spec.rb
|
76
|
+
- spec/medic/predicate_spec.rb
|
77
|
+
- spec/medic/query_options_spec.rb
|
78
|
+
- spec/medic/sample_query_spec.rb
|
79
|
+
- spec/medic/sort_spec.rb
|
80
|
+
- spec/medic/source_query_spec.rb
|
81
|
+
- spec/medic/statistics_collection_query_spec.rb
|
82
|
+
- spec/medic/statistics_options_spec.rb
|
83
|
+
- spec/medic/statistics_query_spec.rb
|
84
|
+
- spec/medic/store_spec.rb
|
85
|
+
- spec/medic/types_spec.rb
|
86
|
+
homepage: https://github.com/ryanlntn/medic
|
40
87
|
licenses:
|
41
88
|
- MIT
|
42
89
|
metadata: {}
|
@@ -61,4 +108,20 @@ signing_key:
|
|
61
108
|
specification_version: 4
|
62
109
|
summary: A RubyMotion Wrapper for HealthKit
|
63
110
|
test_files:
|
64
|
-
- spec/
|
111
|
+
- spec/medic/anchor.rb
|
112
|
+
- spec/medic/anchored_object_query_spec.rb
|
113
|
+
- spec/medic/correlation_query_spec.rb
|
114
|
+
- spec/medic/hk_constants_spec.rb
|
115
|
+
- spec/medic/interval_spec.rb
|
116
|
+
- spec/medic/medic_spec.rb
|
117
|
+
- spec/medic/observer_query_spec.rb
|
118
|
+
- spec/medic/predicate_spec.rb
|
119
|
+
- spec/medic/query_options_spec.rb
|
120
|
+
- spec/medic/sample_query_spec.rb
|
121
|
+
- spec/medic/sort_spec.rb
|
122
|
+
- spec/medic/source_query_spec.rb
|
123
|
+
- spec/medic/statistics_collection_query_spec.rb
|
124
|
+
- spec/medic/statistics_options_spec.rb
|
125
|
+
- spec/medic/statistics_query_spec.rb
|
126
|
+
- spec/medic/store_spec.rb
|
127
|
+
- spec/medic/types_spec.rb
|