todaysplan 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/todays_plan.rb +3 -0
- data/lib/todays_plan/activity.rb +64 -8
- data/lib/todays_plan/activity/heartrate.rb +34 -0
- data/lib/todays_plan/activity/power.rb +44 -0
- data/lib/todays_plan/activity/summary.rb +87 -0
- data/lib/todays_plan/version.rb +1 -1
- data/spec/fixtures/activities/activity.json +116 -0
- data/spec/fixtures/activities/heartrate.json +3207 -0
- data/spec/fixtures/activities/power.json +8063 -0
- data/spec/fixtures/activities/summary.json +198 -0
- data/spec/todays_plan/activity/heartrate_spec.rb +15 -0
- data/spec/todays_plan/activity/power_spec.rb +15 -0
- data/spec/todays_plan/activity/summary_spec.rb +15 -0
- data/spec/todays_plan/activity_spec.rb +9 -0
- data/spec/todays_plan/user_spec.rb +2 -2
- metadata +19 -2
@@ -0,0 +1,198 @@
|
|
1
|
+
{
|
2
|
+
"powermeter": {
|
3
|
+
"id": 7187717,
|
4
|
+
"name": "STAGES"
|
5
|
+
},
|
6
|
+
"user": {
|
7
|
+
"_name": "Curt Wilhelm",
|
8
|
+
"id": 7186982,
|
9
|
+
"email": "curt@mtbcoach.com",
|
10
|
+
"firstname": "Curt",
|
11
|
+
"lastname": "Wilhelm",
|
12
|
+
"isPremium": true
|
13
|
+
},
|
14
|
+
"vam": 545.0,
|
15
|
+
"idle": 38,
|
16
|
+
"_idle-display": "38s",
|
17
|
+
"review": "pending",
|
18
|
+
"_review-display": "Pending review",
|
19
|
+
"name": "GarminConnect-1531942393.fit",
|
20
|
+
"ts": 1484770778000,
|
21
|
+
"_ts-display": "1/18/17 1:19 PM",
|
22
|
+
"startTs": 1484770778000,
|
23
|
+
"_startTs-display": "1/18/17 1:19 PM",
|
24
|
+
"tz": "America/Denver",
|
25
|
+
"equipment": "road",
|
26
|
+
"_equipment-display": "Road",
|
27
|
+
"workout": "training",
|
28
|
+
"_workout-display": "Training",
|
29
|
+
"weight": 81.64656,
|
30
|
+
"_weight-display": "180.0 lb",
|
31
|
+
"training": 5601,
|
32
|
+
"_training-display": "1h:33m",
|
33
|
+
"elapsed": 5639,
|
34
|
+
"_elapsed-display": "1h:33m",
|
35
|
+
"vo2max": 44.96,
|
36
|
+
"_vo2max-display": "44.96",
|
37
|
+
"distance": 30387,
|
38
|
+
"_distance-display": "18.8 mi",
|
39
|
+
"tscorepwr": 128.0,
|
40
|
+
"_tscorepwr-display": "128 T-Score",
|
41
|
+
"tscorehr": 285.0,
|
42
|
+
"atBpm": 143,
|
43
|
+
"calories": 1273,
|
44
|
+
"kj": 1270,
|
45
|
+
"_kj-display": "1270 kj",
|
46
|
+
"np": 285,
|
47
|
+
"_np-display": "285 W",
|
48
|
+
"vi": 1.26,
|
49
|
+
"_vi-display": "1.26",
|
50
|
+
"iff": 0.91,
|
51
|
+
"_iff-display": "0.91 Intensity",
|
52
|
+
"wkg": 3.5,
|
53
|
+
"_wkg-display": "3.50 W/kg",
|
54
|
+
"thresholdWatts": 314,
|
55
|
+
"_thresholdWatts-display": "314 W",
|
56
|
+
"ascent": 848,
|
57
|
+
"_ascent-display": "2782.2 ft",
|
58
|
+
"descent": 827,
|
59
|
+
"_descent-display": "2713.3 ft",
|
60
|
+
"minAlt": 2488,
|
61
|
+
"_minAlt-display": "8162.7 ft",
|
62
|
+
"maxAlt": 2913,
|
63
|
+
"_maxAlt-display": "9557.1 ft",
|
64
|
+
"avgAlt": 2729,
|
65
|
+
"_avgAlt-display": "8953.4 ft",
|
66
|
+
"avgSpeed": 19.5,
|
67
|
+
"_avgSpeed-display": "12.1 mi/h",
|
68
|
+
"maxSpeed": 61.9,
|
69
|
+
"_maxSpeed-display": "38.4 mi/h",
|
70
|
+
"avgCadence": 87,
|
71
|
+
"maxCadence": 127,
|
72
|
+
"minSatHbP": 0.0,
|
73
|
+
"maxSatHbP": 0.0,
|
74
|
+
"avgSatHbP": 0.0,
|
75
|
+
"minTotHbC": 0.0,
|
76
|
+
"maxTotHbC": 0.0,
|
77
|
+
"avgTotHbC": 0.0,
|
78
|
+
"minTemp": 3,
|
79
|
+
"_minTemp-display": "37°F",
|
80
|
+
"maxTemp": 15,
|
81
|
+
"_maxTemp-display": "59°F",
|
82
|
+
"avgTemp": 6,
|
83
|
+
"_avgTemp-display": "42°F",
|
84
|
+
"minBpm": 75,
|
85
|
+
"avgBpm": 129,
|
86
|
+
"maxBpm": 157,
|
87
|
+
"avgWatts": 227,
|
88
|
+
"_avgWatts-display": "227 W",
|
89
|
+
"cp": 299,
|
90
|
+
"_cp-display": "299 W",
|
91
|
+
"maxWatts": 688,
|
92
|
+
"_maxWatts-display": "688 W",
|
93
|
+
"peak3secWatts": 671,
|
94
|
+
"_peak3secWatts-display": "671 W",
|
95
|
+
"peak4secWatts": 668,
|
96
|
+
"_peak4secWatts-display": "668 W",
|
97
|
+
"peak5secWatts": 664,
|
98
|
+
"_peak5secWatts-display": "664 W",
|
99
|
+
"peak10secWatts": 648,
|
100
|
+
"_peak10secWatts-display": "648 W",
|
101
|
+
"peak20secWatts": 602,
|
102
|
+
"_peak20secWatts-display": "602 W",
|
103
|
+
"peak30secWatts": 488,
|
104
|
+
"_peak30secWatts-display": "488 W",
|
105
|
+
"peak1minWatts": 417,
|
106
|
+
"_peak1minWatts-display": "417 W",
|
107
|
+
"peak2minWatts": 346,
|
108
|
+
"_peak2minWatts-display": "346 W",
|
109
|
+
"peak3minWatts": 332,
|
110
|
+
"_peak3minWatts-display": "332 W",
|
111
|
+
"peak5minWatts": 315,
|
112
|
+
"_peak5minWatts-display": "315 W",
|
113
|
+
"peak6minWatts": 314,
|
114
|
+
"_peak6minWatts-display": "314 W",
|
115
|
+
"peak10minWatts": 309,
|
116
|
+
"_peak10minWatts-display": "309 W",
|
117
|
+
"peak15minWatts": 303,
|
118
|
+
"_peak15minWatts-display": "303 W",
|
119
|
+
"peak20minWatts": 303,
|
120
|
+
"_peak20minWatts-display": "303 W",
|
121
|
+
"peak30minWatts": 279,
|
122
|
+
"_peak30minWatts-display": "279 W",
|
123
|
+
"peak40minWatts": 248,
|
124
|
+
"_peak40minWatts-display": "248 W",
|
125
|
+
"peak60minWatts": 235,
|
126
|
+
"_peak60minWatts-display": "235 W",
|
127
|
+
"avgGrade": 0.0,
|
128
|
+
"pwrManufacturer": "STAGES",
|
129
|
+
"pwrSerial": "62415010",
|
130
|
+
"pwrDiscardCnt": 0,
|
131
|
+
"_pwrDiscardCnt-display": "0",
|
132
|
+
"history": {
|
133
|
+
"last6months": {
|
134
|
+
"training": 33322,
|
135
|
+
"_training-display": "9h:15m",
|
136
|
+
"elapsed": 33600,
|
137
|
+
"_elapsed-display": "9h:20m",
|
138
|
+
"distance": 152208,
|
139
|
+
"_distance-display": "94.4 mi",
|
140
|
+
"ascent": 3952,
|
141
|
+
"_ascent-display": "12965.9 ft",
|
142
|
+
"descent": 3936,
|
143
|
+
"_descent-display": "12913.4 ft",
|
144
|
+
"minAlt": 1226,
|
145
|
+
"_minAlt-display": "4022.3 ft",
|
146
|
+
"maxAlt": 4834,
|
147
|
+
"_maxAlt-display": "15859.6 ft",
|
148
|
+
"avgAlt": 2732,
|
149
|
+
"_avgAlt-display": "8963.3 ft",
|
150
|
+
"avgSpeed": 81.79199999999999,
|
151
|
+
"_avgSpeed-display": "50.7 mi/h",
|
152
|
+
"maxSpeed": 31.4244,
|
153
|
+
"_maxSpeed-display": "19.5 mi/h",
|
154
|
+
"avgCadence": 90,
|
155
|
+
"maxCadence": 192,
|
156
|
+
"minTemp": -13,
|
157
|
+
"_minTemp-display": "9°F",
|
158
|
+
"maxTemp": 37,
|
159
|
+
"_maxTemp-display": "98°F",
|
160
|
+
"avgTemp": 12,
|
161
|
+
"_avgTemp-display": "53°F"
|
162
|
+
},
|
163
|
+
"thisday": {
|
164
|
+
"training": 10405,
|
165
|
+
"_training-display": "2h:53m",
|
166
|
+
"elapsed": 11602,
|
167
|
+
"_elapsed-display": "3h:13m",
|
168
|
+
"distance": 52066,
|
169
|
+
"_distance-display": "32.3 mi",
|
170
|
+
"ascent": 1334,
|
171
|
+
"_ascent-display": "4376.6 ft",
|
172
|
+
"descent": 3141,
|
173
|
+
"_descent-display": "10305.1 ft",
|
174
|
+
"minAlt": 2360,
|
175
|
+
"_minAlt-display": "7742.8 ft",
|
176
|
+
"maxAlt": 4834,
|
177
|
+
"_maxAlt-display": "15859.6 ft",
|
178
|
+
"avgAlt": 2781,
|
179
|
+
"_avgAlt-display": "9124.0 ft",
|
180
|
+
"avgSpeed": 75.57839999999999,
|
181
|
+
"_avgSpeed-display": "46.9 mi/h",
|
182
|
+
"maxSpeed": 30.456000000000003,
|
183
|
+
"_maxSpeed-display": "18.9 mi/h",
|
184
|
+
"avgCadence": 88,
|
185
|
+
"maxCadence": 175,
|
186
|
+
"minTemp": -5,
|
187
|
+
"_minTemp-display": "23°F",
|
188
|
+
"maxTemp": 29,
|
189
|
+
"_maxTemp-display": "84°F",
|
190
|
+
"avgTemp": 11,
|
191
|
+
"_avgTemp-display": "51°F"
|
192
|
+
}
|
193
|
+
},
|
194
|
+
"metadata": {
|
195
|
+
"overrides": []
|
196
|
+
},
|
197
|
+
"permissions": ["edit1", "edit2"]
|
198
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TodaysPlan::Activity::Heartrate do
|
4
|
+
|
5
|
+
|
6
|
+
it "find activity" do
|
7
|
+
stub_request(:get, "#{TodaysPlan.endpoint}/plans/workouts/fragment/heartrate/8753794").
|
8
|
+
with(:headers => {'Accept'=>'application/json',
|
9
|
+
'Authorization'=>'Bearer abc-123'}).
|
10
|
+
to_return(:status => 200, :body => File.read("spec/fixtures/activities/heartrate.json"), :headers => {})
|
11
|
+
activity = TodaysPlan::Activity::Heartrate.find(8753794)
|
12
|
+
expect(activity.min_bpm).to eq 81
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TodaysPlan::Activity::Power do
|
4
|
+
|
5
|
+
|
6
|
+
it "find activity" do
|
7
|
+
stub_request(:get, "#{TodaysPlan.endpoint}/plans/workouts/fragment/power/8753794").
|
8
|
+
with(:headers => {'Accept'=>'application/json',
|
9
|
+
'Authorization'=>'Bearer abc-123'}).
|
10
|
+
to_return(:status => 200, :body => File.read("spec/fixtures/activities/power.json"), :headers => {})
|
11
|
+
activity = TodaysPlan::Activity::Power.find(8753794)
|
12
|
+
expect(activity.avg_watts).to eq 235
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TodaysPlan::Activity::Summary do
|
4
|
+
|
5
|
+
|
6
|
+
it "find activity" do
|
7
|
+
stub_request(:get, "#{TodaysPlan.endpoint}/plans/workouts/fragment/summary/8753794").
|
8
|
+
with(:headers => {'Accept'=>'application/json',
|
9
|
+
'Authorization'=>'Bearer abc-123'}).
|
10
|
+
to_return(:status => 200, :body => File.read("spec/fixtures/activities/summary.json"), :headers => {})
|
11
|
+
activity = TodaysPlan::Activity::Summary.find(8753794)
|
12
|
+
expect(activity.min_bpm).to eq 75
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -20,4 +20,13 @@ describe TodaysPlan::Activity do
|
|
20
20
|
expect(all[0]).to be_a(TodaysPlan::Activity)
|
21
21
|
end
|
22
22
|
|
23
|
+
it "find activity" do
|
24
|
+
stub_request(:get, "#{TodaysPlan.endpoint}/plans/workouts/detailed/8753794").
|
25
|
+
with(:headers => {'Accept'=>'application/json',
|
26
|
+
'Authorization'=>'Bearer abc-123'}).
|
27
|
+
to_return(:status => 200, :body => File.read("spec/fixtures/activities/activity.json"), :headers => {})
|
28
|
+
activity = TodaysPlan::Activity.find(8753794)
|
29
|
+
expect(activity.id).to eq 8753794
|
30
|
+
end
|
31
|
+
|
23
32
|
end
|
@@ -40,8 +40,8 @@ describe TodaysPlan::User do
|
|
40
40
|
end
|
41
41
|
|
42
42
|
it "register user" do
|
43
|
-
options = {
|
44
|
-
lastname: 'athlete', password:'password'
|
43
|
+
options = {email: 'joeathlete@example.com', firstname: 'joe',
|
44
|
+
lastname: 'athlete', password:'password'}
|
45
45
|
# preregister
|
46
46
|
stub_request(:get, "#{TodaysPlan.endpoint}/auth/preregister").
|
47
47
|
with(:headers => {'Accept'=>'*/*'}).
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: todaysplan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Curt Wilhelm
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -92,19 +92,29 @@ files:
|
|
92
92
|
- Rakefile
|
93
93
|
- lib/todays_plan.rb
|
94
94
|
- lib/todays_plan/activity.rb
|
95
|
+
- lib/todays_plan/activity/heartrate.rb
|
96
|
+
- lib/todays_plan/activity/power.rb
|
97
|
+
- lib/todays_plan/activity/summary.rb
|
95
98
|
- lib/todays_plan/client.rb
|
96
99
|
- lib/todays_plan/connector.rb
|
97
100
|
- lib/todays_plan/errors.rb
|
98
101
|
- lib/todays_plan/user.rb
|
99
102
|
- lib/todays_plan/version.rb
|
103
|
+
- spec/fixtures/activities/activity.json
|
104
|
+
- spec/fixtures/activities/heartrate.json
|
100
105
|
- spec/fixtures/activities/incomplete.json
|
101
106
|
- spec/fixtures/activities/incomplete_response.json
|
107
|
+
- spec/fixtures/activities/power.json
|
108
|
+
- spec/fixtures/activities/summary.json
|
102
109
|
- spec/fixtures/users/accept_response.json
|
103
110
|
- spec/fixtures/users/delegates_response.json
|
104
111
|
- spec/fixtures/users/invite_response.json
|
105
112
|
- spec/fixtures/users/register_response.json
|
106
113
|
- spec/fixtures/users/search_response.json
|
107
114
|
- spec/spec_helper.rb
|
115
|
+
- spec/todays_plan/activity/heartrate_spec.rb
|
116
|
+
- spec/todays_plan/activity/power_spec.rb
|
117
|
+
- spec/todays_plan/activity/summary_spec.rb
|
108
118
|
- spec/todays_plan/activity_spec.rb
|
109
119
|
- spec/todays_plan/client_spec.rb
|
110
120
|
- spec/todays_plan/connector_spec.rb
|
@@ -135,14 +145,21 @@ signing_key:
|
|
135
145
|
specification_version: 4
|
136
146
|
summary: A Ruby Library for TodaysPlan
|
137
147
|
test_files:
|
148
|
+
- spec/fixtures/activities/activity.json
|
149
|
+
- spec/fixtures/activities/heartrate.json
|
138
150
|
- spec/fixtures/activities/incomplete.json
|
139
151
|
- spec/fixtures/activities/incomplete_response.json
|
152
|
+
- spec/fixtures/activities/power.json
|
153
|
+
- spec/fixtures/activities/summary.json
|
140
154
|
- spec/fixtures/users/accept_response.json
|
141
155
|
- spec/fixtures/users/delegates_response.json
|
142
156
|
- spec/fixtures/users/invite_response.json
|
143
157
|
- spec/fixtures/users/register_response.json
|
144
158
|
- spec/fixtures/users/search_response.json
|
145
159
|
- spec/spec_helper.rb
|
160
|
+
- spec/todays_plan/activity/heartrate_spec.rb
|
161
|
+
- spec/todays_plan/activity/power_spec.rb
|
162
|
+
- spec/todays_plan/activity/summary_spec.rb
|
146
163
|
- spec/todays_plan/activity_spec.rb
|
147
164
|
- spec/todays_plan/client_spec.rb
|
148
165
|
- spec/todays_plan/connector_spec.rb
|