lib/dexcom/blood_glucose/class_methods.rb in dexcom-0.2.2 vs lib/dexcom/blood_glucose/class_methods.rb in dexcom-0.3.0
- old
+ new
@@ -1,7 +1,10 @@
# frozen_string_literal
+require 'active_support'
+require 'active_support/core_ext'
+
module Dexcom
module BloodGlucoseUtils
module ClassMethods
DEFAULT_NUMBER_OF_VALUES = 1
MINUTES_PER_DATAPOINT = 5
@@ -12,22 +15,26 @@
def get_last(max_count: nil, minutes: nil)
number_of_values = calculate_number_of_values(max_count, minutes)
response = make_api_request(number_of_values)
- process_api_response(response)
+ blood_glucose_values = process_api_response(response)
+
+ if minutes.present?
+ blood_glucose_values.select! { |bg| bg.timestamp >= minutes.minutes.ago }
+ end
+
+ blood_glucose_values
end
private
def calculate_number_of_values(max_count, minutes)
- if minutes.nil?
- max_count || DEFAULT_NUMBER_OF_VALUES
- elsif max_count.nil?
- minutes / MINUTES_PER_DATAPOINT
- else
- [max_count, minutes / MINUTES_PER_DATAPOINT].min
- end
+ return DEFAULT_NUMBER_OF_VALUES if (minutes.nil? && max_count.nil?)
+ return max_count if minutes.nil?
+ return (minutes / MINUTES_PER_DATAPOINT) if max_count.nil?
+
+ [max_count, minutes / MINUTES_PER_DATAPOINT].min
end
end
end
end