fitgem_oauth2 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ae7eec9fd825f4fc19feafe55ca51d3b6e176fdd
4
- data.tar.gz: 0b1d4f6fb319465919049c96c8d4e2f731ad22c8
2
+ SHA256:
3
+ metadata.gz: fd9d0f60ab3531d3ee135513c6e6ef7bf584978ee2aa760112ae317528bce9f4
4
+ data.tar.gz: a65d59a4e239ae99f068d1886166fbc81c04d544bcf1cc03acda2703d1e7497c
5
5
  SHA512:
6
- metadata.gz: 49b06536b0b23e8645666d85c67081a047ca2b125b1398fa1cde532f441a65cdd10c1f5d2c657df14fed795e6ffaccbbb6690a92d81f77039616e960a1000931
7
- data.tar.gz: '0691da40e4d1dcf14757ecd6656a5b391d537223bb00f09d8028327b7f79e201711d71f0538619578cc1d467a50041ddb428366c6ab73200ed3abda847baa7c5'
6
+ metadata.gz: 0a747382a12149b6aa73fab4df12672fde5be3a35ce1c33ab8bd9ee969146c2ca6368b5667f7c94cfbd0ae7c09a30a0d051870c766149afaf37f7658fd0e33b7
7
+ data.tar.gz: 3400e8170f577dd2414bce4cea863ee02a97d68c49e2dff03ba1af3c8f1616634d4c35acf5e4111dce08692c87d96bd4427cc6d8408ec9bf45e98bd471f245dd
data/lib/fitgem_oauth2.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'fitgem_oauth2/client.rb'
2
2
 
3
+ # Top level module for the classes for this gem
3
4
  module FitgemOauth2
4
5
 
5
6
  end
@@ -1,9 +1,16 @@
1
1
  module FitgemOauth2
2
2
  class Client
3
3
 
4
- ACTIVITY_RESOURCES = %w(calories caloriesBMR steps distance floors elevation minutesSedentary minutesLightlyActive minutesFairlyActive minutesVeryActive activityCaloriestracker/calories tracker/steps tracker/distance tracker/floors tracker/elevation tracker/minutesSedentary tracker/minutesLightlyActive tracker/minutesFairlyActive tracker/minutesVeryActive tracker/activityCalories)
5
-
6
- ACTIVITY_PERIODS = %w(1d 7d 30d 1w 1m 3m 6m 1y max)
4
+ ACTIVITY_RESOURCES = %w[
5
+ calories caloriesBMR steps distance floors elevation minutesSedentary
6
+ minutesLightlyActive minutesFairlyActive minutesVeryActive
7
+ activityCaloriestracker/calories tracker/steps tracker/distance
8
+ tracker/floors tracker/elevation tracker/minutesSedentary
9
+ tracker/minutesLightlyActive tracker/minutesFairlyActive
10
+ tracker/minutesVeryActive tracker/activityCalories
11
+ ].freeze
12
+
13
+ ACTIVITY_PERIODS = %w[1d 7d 30d 1w 1m 3m 6m 1y max].freeze
7
14
 
8
15
  # retrieves daily activity summary for a date
9
16
  # @param date the date for which the summary is retrieved
@@ -1,190 +1,21 @@
1
+ require 'fitgem_oauth2/food/collection.rb'
2
+ require 'fitgem_oauth2/food/series.rb'
3
+ require 'fitgem_oauth2/food/metadata.rb'
4
+
1
5
  module FitgemOauth2
2
6
  class Client
3
7
 
4
- FOOD_SERIES_RESOURCES = %w( caloriesIn water )
5
- FOOD_SERIES_PERIODS = %w( 1d 7d 30d 1w 1m 3m 6m 1y max )
6
-
7
-
8
- # ==================================
9
- # Food or Water Series
10
- # ==================================
11
-
12
- def food_series_for_date_range(start_date, end_date)
13
- validate_start_date(start_date)
14
- validate_end_date(end_date)
15
- get_call(food_series_url(user_id, format_date(start_date), format_date(end_date)))
16
- end
17
-
18
- def food_series_for_period(start_date, period)
19
- validate_start_date(start_date)
20
- validate_food_series_period(period)
21
- get_call(food_series_url(user_id, format_date(start_date), period))
22
- end
23
-
24
- def water_series_for_date_range(start_date, end_date)
25
- validate_start_date(start_date)
26
- validate_end_date(end_date)
27
- get_call(water_series_url(user_id, format_date(start_date), format_date(end_date)))
28
- end
29
-
30
- def water_series_for_period(start_date, period)
31
- validate_start_date(start_date)
32
- validate_food_series_period(period)
33
- get_call(water_series_url(user_id, format_date(start_date), period))
34
- end
35
-
36
- def food_series(resource: nil, start_date: nil, end_date: nil, period: nil)
37
- warn '[DEPRECATED] use `food_series_for_date_range`, `food_series_for_period`, `water_series_for_date_range`, or `water_series_for_period` instead.'
38
- unless FOOD_SERIES_RESOURCES.include?(resource)
39
- raise FitgemOauth2::InvalidArgumentError, "Invalid resource: #{resource}. Specify a valid resource from #{FOOD_SERIES_RESOURCES}"
40
- end
41
-
42
- if end_date && period
43
- raise FitgemOauth2::InvalidArgumentError, 'Provide only one of end_date and period.'
44
- end
45
-
46
- if !end_date && !period
47
- raise FitgemOauth2::InvalidArgumentError, 'Provide at least one of end_date and period.'
48
- end
49
-
50
- url = ['user', user_id, 'foods/log', resource, 'date', start_date].join('/')
51
-
52
- if period
53
- unless FOOD_SERIES_PERIODS.include?(period)
54
- raise FitgemOauth2::InvalidArgumentError, "Invalid period: #{period}. Specify a valid period from #{FOOD_SERIES_PERIODS}"
55
- end
56
- end
57
-
58
- second = period || format_date(end_date)
59
- url = [url, second].join('/')
60
-
61
- get_call(url + '.json')
62
- end
63
-
64
- # ==================================
65
- # Collection data
66
- # ==================================
67
-
68
- def food_goals
69
- get_call("user/#{user_id}/foods/log/goal.json")
70
- end
71
-
72
- def food_logs(date)
73
- get_call("user/#{user_id}/foods/log/date/#{format_date(date)}.json")
74
- end
75
-
76
- def water_logs(date)
77
- get_call("user/#{user_id}/foods/log/water/date/#{format_date(date)}.json")
78
- end
79
-
80
- def water_goal
81
- get_call("user/#{user_id}/foods/log/water/goal.json")
82
- end
83
-
84
- def log_food(params)
85
- post_call("user/#{user_id}/foods/log.json", params)
86
- end
87
-
88
- def update_food_log(food_log_id, params)
89
- post_call("user/#{user_id}/foods/log/#{food_log_id}.json", params)
90
- end
91
-
92
- def log_water(params)
93
- post_call("user/#{user_id}/foods/log/water.json", params)
94
- end
95
-
96
- def update_food_goal(params)
97
- post_call("user/#{user_id}/foods/log/goal.json", params)
98
- end
99
-
100
- def update_water_goal(params)
101
- post_call("user/#{user_id}/foods/log/water/goal.json", params)
102
- end
103
-
104
- def delete_food_log(food_log_id)
105
- delete_call("user/#{user_id}/foods/log/#{food_log_id}.json")
106
- end
107
-
108
- def update_water_log(water_log_id, params)
109
- post_call("user/#{user_id}/foods/log/water/#{water_log_id}.json", params)
110
- end
111
-
112
- def delete_water_log(water_log_id)
113
- delete_call("user/#{user_id}/foods/log/water/#{water_log_id}.json")
114
- end
115
-
116
- # ==================================
117
- # Collection Metadata
118
- # ==================================
119
-
120
- def add_favorite_food(food_id)
121
- post_call("user/#{user_id}/foods/log/favorite/#{food_id}.json")
122
- end
123
-
124
- def delete_favorite_food(food_id)
125
- delete_call("user/#{user_id}/foods/log/favorite/#{food_id}.json")
126
- end
127
-
128
- def recent_foods
129
- get_call("user/#{user_id}/foods/recent.json")
130
- end
131
-
132
- def favorite_foods
133
- get_call("user/#{user_id}/foods/log/favorite.json")
134
- end
135
-
136
- def frequent_foods
137
- get_call("user/#{user_id}/foods/log/frequent.json")
138
- end
139
-
140
- def meals
141
- get_call("user/#{user_id}/meals.json")
142
- end
143
-
144
- def create_meal(params)
145
- post_call("user/#{user_id}/meals.json", params)
146
- end
147
-
148
- def meal(meal_id)
149
- get_call("user/#{user_id}/meals/#{meal_id}.json")
150
- end
151
-
152
- def update_meal(meal_id, params)
153
- post_call("user/#{user_id}/meals/#{meal_id}.json", params)
154
- end
155
-
156
- def delete_meal(meal_id)
157
- delete_call("user/#{user_id}/meals/#{meal_id}.json")
158
- end
159
-
160
- def create_food(params)
161
- post_call("user/#{user_id}/foods.json", params)
162
- end
163
-
164
- def delete_food(food_id)
165
- delete_call("user/#{user_id}/foods/#{food_id}.json")
166
- end
167
-
168
- def food(id)
169
- get_call("foods/#{id}.json")
170
- end
171
-
172
- def food_units
173
- get_call('foods/units.json')
174
- end
175
-
176
- def search_foods(params)
177
- post_call('foods/search.json', params)
178
- end
8
+ FOOD_SERIES_RESOURCES = %w[caloriesIn water].freeze
9
+ FOOD_SERIES_PERIODS = %w[1d 7d 30d 1w 1m 3m 6m 1y max].freeze
179
10
 
180
11
  private
12
+
181
13
  def validate_food_series_period(period)
182
14
  unless FOOD_SERIES_PERIODS.include?(period)
183
15
  raise FitgemOauth2::InvalidArgumentError, "Invalid period: #{period}. Specify a valid period from #{FOOD_SERIES_PERIODS}"
184
16
  end
185
17
  end
186
18
 
187
-
188
19
  def food_series_url(user_id, start_date, end_date_or_period)
189
20
  ['user', user_id, 'foods/log/caloriesIn', 'date', start_date, end_date_or_period].join('/') + '.json'
190
21
  end
@@ -0,0 +1,51 @@
1
+ module FitgemOauth2
2
+ class Client
3
+ def food_goals
4
+ get_call("user/#{user_id}/foods/log/goal.json")
5
+ end
6
+
7
+ def food_logs(date)
8
+ get_call("user/#{user_id}/foods/log/date/#{format_date(date)}.json")
9
+ end
10
+
11
+ def water_logs(date)
12
+ get_call("user/#{user_id}/foods/log/water/date/#{format_date(date)}.json")
13
+ end
14
+
15
+ def water_goal
16
+ get_call("user/#{user_id}/foods/log/water/goal.json")
17
+ end
18
+
19
+ def log_food(params)
20
+ post_call("user/#{user_id}/foods/log.json", params)
21
+ end
22
+
23
+ def update_food_log(food_log_id, params)
24
+ post_call("user/#{user_id}/foods/log/#{food_log_id}.json", params)
25
+ end
26
+
27
+ def log_water(params)
28
+ post_call("user/#{user_id}/foods/log/water.json", params)
29
+ end
30
+
31
+ def update_food_goal(params)
32
+ post_call("user/#{user_id}/foods/log/goal.json", params)
33
+ end
34
+
35
+ def update_water_goal(params)
36
+ post_call("user/#{user_id}/foods/log/water/goal.json", params)
37
+ end
38
+
39
+ def delete_food_log(food_log_id)
40
+ delete_call("user/#{user_id}/foods/log/#{food_log_id}.json")
41
+ end
42
+
43
+ def update_water_log(water_log_id, params)
44
+ post_call("user/#{user_id}/foods/log/water/#{water_log_id}.json", params)
45
+ end
46
+
47
+ def delete_water_log(water_log_id)
48
+ delete_call("user/#{user_id}/foods/log/water/#{water_log_id}.json")
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,63 @@
1
+ module FitgemOauth2
2
+ class Client
3
+ def add_favorite_food(food_id)
4
+ post_call("user/#{user_id}/foods/log/favorite/#{food_id}.json")
5
+ end
6
+
7
+ def delete_favorite_food(food_id)
8
+ delete_call("user/#{user_id}/foods/log/favorite/#{food_id}.json")
9
+ end
10
+
11
+ def recent_foods
12
+ get_call("user/#{user_id}/foods/recent.json")
13
+ end
14
+
15
+ def favorite_foods
16
+ get_call("user/#{user_id}/foods/log/favorite.json")
17
+ end
18
+
19
+ def frequent_foods
20
+ get_call("user/#{user_id}/foods/log/frequent.json")
21
+ end
22
+
23
+ def meals
24
+ get_call("user/#{user_id}/meals.json")
25
+ end
26
+
27
+ def create_meal(params)
28
+ post_call("user/#{user_id}/meals.json", params)
29
+ end
30
+
31
+ def meal(meal_id)
32
+ get_call("user/#{user_id}/meals/#{meal_id}.json")
33
+ end
34
+
35
+ def update_meal(meal_id, params)
36
+ post_call("user/#{user_id}/meals/#{meal_id}.json", params)
37
+ end
38
+
39
+ def delete_meal(meal_id)
40
+ delete_call("user/#{user_id}/meals/#{meal_id}.json")
41
+ end
42
+
43
+ def create_food(params)
44
+ post_call("user/#{user_id}/foods.json", params)
45
+ end
46
+
47
+ def delete_food(food_id)
48
+ delete_call("user/#{user_id}/foods/#{food_id}.json")
49
+ end
50
+
51
+ def food(id)
52
+ get_call("foods/#{id}.json")
53
+ end
54
+
55
+ def food_units
56
+ get_call('foods/units.json')
57
+ end
58
+
59
+ def search_foods(params)
60
+ post_call('foods/search.json', params)
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,55 @@
1
+ module FitgemOauth2
2
+ class Client
3
+ def food_series_for_date_range(start_date, end_date)
4
+ validate_start_date(start_date)
5
+ validate_end_date(end_date)
6
+ get_call(food_series_url(user_id, format_date(start_date), format_date(end_date)))
7
+ end
8
+
9
+ def food_series_for_period(start_date, period)
10
+ validate_start_date(start_date)
11
+ validate_food_series_period(period)
12
+ get_call(food_series_url(user_id, format_date(start_date), period))
13
+ end
14
+
15
+ def water_series_for_date_range(start_date, end_date)
16
+ validate_start_date(start_date)
17
+ validate_end_date(end_date)
18
+ get_call(water_series_url(user_id, format_date(start_date), format_date(end_date)))
19
+ end
20
+
21
+ def water_series_for_period(start_date, period)
22
+ validate_start_date(start_date)
23
+ validate_food_series_period(period)
24
+ get_call(water_series_url(user_id, format_date(start_date), period))
25
+ end
26
+
27
+ def food_series(resource: nil, start_date: nil, end_date: nil, period: nil)
28
+ warn '[DEPRECATED] use `food_series_for_date_range`, `food_series_for_period`, `water_series_for_date_range`, or `water_series_for_period` instead.'
29
+ unless FOOD_SERIES_RESOURCES.include?(resource)
30
+ raise FitgemOauth2::InvalidArgumentError, "Invalid resource: #{resource}. Specify a valid resource from #{FOOD_SERIES_RESOURCES}"
31
+ end
32
+
33
+ if end_date && period
34
+ raise FitgemOauth2::InvalidArgumentError, 'Provide only one of end_date and period.'
35
+ end
36
+
37
+ if !end_date && !period
38
+ raise FitgemOauth2::InvalidArgumentError, 'Provide at least one of end_date and period.'
39
+ end
40
+
41
+ url = ['user', user_id, 'foods/log', resource, 'date', start_date].join('/')
42
+
43
+ if period
44
+ unless FOOD_SERIES_PERIODS.include?(period)
45
+ raise FitgemOauth2::InvalidArgumentError, "Invalid period: #{period}. Specify a valid period from #{FOOD_SERIES_PERIODS}"
46
+ end
47
+ end
48
+
49
+ second = period || format_date(end_date)
50
+ url = [url, second].join('/')
51
+
52
+ get_call(url + '.json')
53
+ end
54
+ end
55
+ end
@@ -1,8 +1,8 @@
1
1
  module FitgemOauth2
2
2
  class Client
3
3
 
4
- HR_PERIODS = %w(1d 7d 30d 1w 1m)
5
- HR_DETAIL_LEVELS = %w(1sec 1min)
4
+ HR_PERIODS = %w[1d 7d 30d 1w 1m].freeze
5
+ HR_DETAIL_LEVELS = %w[1sec 1min].freeze
6
6
 
7
7
  def hr_series_for_date_range(start_date, end_date)
8
8
  validate_start_date(start_date)
@@ -22,7 +22,7 @@ module FitgemOauth2
22
22
 
23
23
  # retrieve heartrate time series
24
24
  def heartrate_time_series(start_date: nil, end_date: nil, period: nil)
25
- warn "[DEPRECATION] `heartrate_time_series` is deprecated. Please use `hr_series_for_date_range` or `hr_series_for_period` instead."
25
+ warn '[DEPRECATION] `heartrate_time_series` is deprecated. Please use `hr_series_for_date_range` or `hr_series_for_period` instead.'
26
26
 
27
27
  regular_time_series_guard(
28
28
  start_date: start_date,
@@ -59,39 +59,27 @@ module FitgemOauth2
59
59
  end
60
60
 
61
61
  private
62
+
62
63
  def validate_hr_period(period)
63
- unless period && HR_PERIODS.include?(period)
64
- raise FitgemOauth2::InvalidArgumentError, "Invalid period: #{period}. Valid periods are #{HR_PERIODS}."
65
- end
64
+ raise FitgemOauth2::InvalidArgumentError, "Invalid period: #{period}. Valid periods are #{HR_PERIODS}." unless period && HR_PERIODS.include?(period)
66
65
  end
67
66
 
68
67
  def regular_time_series_guard(start_date:, end_date:, period:)
69
68
  validate_start_date(start_date)
70
69
 
71
- if end_date && period
72
- raise FitgemOauth2::InvalidArgumentError, 'Both end_date and period specified. Specify only one.'
73
- end
70
+ raise FitgemOauth2::InvalidArgumentError, 'Both end_date and period specified. Specify only one.' if end_date && period
74
71
 
75
- if !end_date && !period
76
- raise FitgemOauth2::InvalidArgumentError, 'Neither end_date nor period specified. Specify at least one.'
77
- end
72
+ raise FitgemOauth2::InvalidArgumentError, 'Neither end_date nor period specified. Specify at least one.' if !end_date && !period
78
73
 
79
74
  validate_hr_period(period) if period
80
75
  end
81
76
 
82
-
83
77
  def intraday_series_guard(start_date:, end_date:, detail_level:, start_time:, end_time:)
84
- unless start_date
85
- raise FitgemOauth2::InvalidArgumentError, 'Start date not provided.'
86
- end
78
+ raise FitgemOauth2::InvalidArgumentError, 'Start date not provided.' unless start_date
87
79
 
88
- unless detail_level && HR_DETAIL_LEVELS.include?(detail_level)
89
- raise FitgemOauth2::InvalidArgumentError, "Please specify the defail level. Detail level should be one of #{HR_DETAIL_LEVELS}."
90
- end
80
+ raise FitgemOauth2::InvalidArgumentError, "Please specify the defail level. Detail level should be one of #{HR_DETAIL_LEVELS}." unless detail_level && HR_DETAIL_LEVELS.include?(detail_level)
91
81
 
92
- if (start_time && !end_time) || (end_time && !start_time)
93
- raise FitgemOauth2::InvalidArgumentError, 'Either specify both the start_time and end_time or specify neither.'
94
- end
82
+ raise FitgemOauth2::InvalidArgumentError, 'Either specify both the start_time and end_time or specify neither.' if (start_time && !end_time) || (end_time && !start_time)
95
83
  end
96
84
  end
97
85
  end
@@ -2,8 +2,12 @@ module FitgemOauth2
2
2
 
3
3
  class Client
4
4
 
5
- SLEEP_RESOURCES = %w(startTime timeInBed minutesAsleep awakeningsCount minutesAwake minutesToFallAsleep minutesAfterWakeup efficiency)
6
- SLEEP_PERIODS = %w(1d 7d 30d 1w 1m 3m 6m 1y max)
5
+ SLEEP_RESOURCES = %w[
6
+ startTime timeInBed minutesAsleep awakeningsCount minutesAwake
7
+ minutesToFallAsleep minutesAfterWakeup efficiency
8
+ ].freeze
9
+
10
+ SLEEP_PERIODS = %w[1d 7d 30d 1w 1m 3m 6m 1y max].freeze
7
11
 
8
12
  # retrieve sleep logs for a date
9
13
  # @param date date for which sleep logs needs to be accessed
@@ -17,9 +21,9 @@ module FitgemOauth2
17
21
 
18
22
  def sleep_logs_list(date, sort, limit)
19
23
  date_param = format_date(date)
20
- if sort == "asc"
24
+ if sort == 'asc'
21
25
  date_param = "afterDate=#{date_param}"
22
- elsif sort == "desc"
26
+ elsif sort == 'desc'
23
27
  date_param = "beforeDate=#{date_param}"
24
28
  else
25
29
  raise FitgemOauth2::InvalidArgumentError, "sort can either be asc or desc"
@@ -1,7 +1,7 @@
1
1
  module FitgemOauth2
2
2
  class Client
3
3
 
4
- SUBSCRIBABLE_TYPES = [:sleep, :body, :activities, :foods, :all]
4
+ SUBSCRIBABLE_TYPES = %i[sleep body activities foods all].freeze
5
5
 
6
6
  def subscriptions(opts)
7
7
  get_call(subscription_url(opts))
@@ -18,15 +18,15 @@ module FitgemOauth2
18
18
  protected
19
19
 
20
20
  def subscription_url(opts)
21
- type = opts[ :type ] || :all
21
+ type = opts[:type] || :all
22
22
  subscription_id = opts[:subscription_id]
23
23
 
24
- url = [ 'user', user_id ]
24
+ url = ['user', user_id]
25
25
  url << type unless type == :all
26
26
  url << 'apiSubscriptions'
27
27
  url << subscription_id if subscription_id
28
28
 
29
- return url.join('/') + '.json'
29
+ url.join('/') + '.json'
30
30
  end
31
31
  end
32
- end
32
+ end
@@ -1,6 +1,6 @@
1
1
  module FitgemOauth2
2
2
  class Client
3
- def user_info()
3
+ def user_info
4
4
  get_call("user/#{user_id}/profile.json")
5
5
  end
6
6
  end
@@ -1,18 +1,16 @@
1
1
  module FitgemOauth2
2
2
  class Client
3
-
4
3
  def format_date(date)
5
- if !date
6
- return nil
7
- end
8
4
 
9
- valid_semantic_date = %w(today yesterday).include? date
10
- valid_date_string = ((date =~ /\d{4}\-\d{2}\-\d{2}/) == 0)
5
+ return nil if date.nil?
6
+
7
+ valid_semantic_date = %w[today yesterday].include? date
8
+ valid_date_string = (date =~ /\d{4}\-\d{2}\-\d{2}/) == 0
11
9
  if valid_date_string
12
10
  date
13
11
  elsif valid_semantic_date
14
12
  date_from_semantic(date)
15
- elsif Date === date || Time === date || DateTime === date
13
+ elsif date.is_a?(Date) || date.is_a?(Time) || date.is_a?(DateTime)
16
14
  date.strftime('%Y-%m-%d')
17
15
  else
18
16
  raise FitgemOauth2::InvalidDateArgument, "Date used must be a date/time object or a string in the format YYYY-MM-DD; supplied argument is a #{date.class}"
@@ -20,9 +18,9 @@ module FitgemOauth2
20
18
  end
21
19
 
22
20
  def format_time(time)
23
- if ( (time =~ /\d{2}:\d{2}/) == 0)
21
+ if (time =~ /\d{2}:\d{2}/) == 0
24
22
  time
25
- elsif DateTime === time || Time === time
23
+ elsif time.is_a?(DateTime) || time.is_a?(Time)
26
24
  time.strftime('%H:%M')
27
25
  else
28
26
  raise FitgemOauth2::InvalidTimeArgument, "Time used must be a DateTime/Time object or a string in the format hh:mm; supplied argument is a #{time.class}"
@@ -30,21 +28,18 @@ module FitgemOauth2
30
28
  end
31
29
 
32
30
  def validate_start_date(start_date)
33
- unless start_date
34
- raise FitgemOauth2::InvalidArgumentError, 'Please specify a valid start date.'
35
- end
31
+ raise FitgemOauth2::InvalidArgumentError, 'Please specify a valid start date.' unless start_date
36
32
  end
37
33
 
38
34
  def validate_end_date(end_date)
39
- unless end_date
40
- raise FitgemOauth2::InvalidArgumentError, 'Please specify a valid end date.'
41
- end
35
+ raise FitgemOauth2::InvalidArgumentError, 'Please specify a valid end date.' unless end_date
42
36
  end
43
37
 
44
38
  private
39
+
45
40
  def date_from_semantic(semantic)
46
41
  if semantic === 'yesterday'
47
- (Date.today-1).strftime('%Y-%m-%d')
42
+ (Date.today - 1).strftime('%Y-%m-%d')
48
43
  elsif semantic == 'today'
49
44
  Date.today.strftime('%Y-%m-%d')
50
45
  end
@@ -1,3 +1,3 @@
1
1
  module FitgemOauth2
2
- VERSION = '1.2.0'
2
+ VERSION = '1.3.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fitgem_oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ankit Gupta
@@ -80,6 +80,9 @@ files:
80
80
  - lib/fitgem_oauth2/devices.rb
81
81
  - lib/fitgem_oauth2/errors.rb
82
82
  - lib/fitgem_oauth2/food.rb
83
+ - lib/fitgem_oauth2/food/collection.rb
84
+ - lib/fitgem_oauth2/food/metadata.rb
85
+ - lib/fitgem_oauth2/food/series.rb
83
86
  - lib/fitgem_oauth2/friends.rb
84
87
  - lib/fitgem_oauth2/heartrate.rb
85
88
  - lib/fitgem_oauth2/sleep.rb
@@ -107,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
110
  version: '0'
108
111
  requirements: []
109
112
  rubyforge_project:
110
- rubygems_version: 2.5.2
113
+ rubygems_version: 2.7.7
111
114
  signing_key:
112
115
  specification_version: 4
113
116
  summary: Fitbit API client library