Module: RailsPulse::Extensions::ActiveRecord::DateResultTransformer

Defined in:
lib/rails_pulse/extensions/active_record.rb

Overview

Module to transform aggregation result keys from strings to Date objects This makes the API match Groupdate’s behavior

Instance Method Summary collapse

Instance Method Details

#average(*args) ⇒ Object



59
60
61
# File 'lib/rails_pulse/extensions/active_record.rb', line 59

def average(*args)
  super.transform_keys { |date_str| Date.parse(date_str.to_s) }
end

#count(*args) ⇒ Object



53
54
55
56
57
# File 'lib/rails_pulse/extensions/active_record.rb', line 53

def count(*args)
  result = super
  # count can return an integer or a hash depending on whether group is used
  result.is_a?(Hash) ? result.transform_keys { |date_str| Date.parse(date_str.to_s) } : result
end

#maximum(*args) ⇒ Object



63
64
65
# File 'lib/rails_pulse/extensions/active_record.rb', line 63

def maximum(*args)
  super.transform_keys { |date_str| Date.parse(date_str.to_s) }
end

#minimum(*args) ⇒ Object



67
68
69
# File 'lib/rails_pulse/extensions/active_record.rb', line 67

def minimum(*args)
  super.transform_keys { |date_str| Date.parse(date_str.to_s) }
end

#pluck(*args) ⇒ Object



71
72
73
74
75
# File 'lib/rails_pulse/extensions/active_record.rb', line 71

def pluck(*args)
  result = super
  # If grouping, transform the keys
  result.is_a?(Hash) ? result.transform_keys { |date_str| Date.parse(date_str.to_s) } : result
end

#sum(*args) ⇒ Object



49
50
51
# File 'lib/rails_pulse/extensions/active_record.rb', line 49

def sum(*args)
  super.transform_keys { |date_str| Date.parse(date_str.to_s) }
end