fitgem_oauth2 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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