module Rollup::Utils
Constants
- DATE_INTERVALS
Public Class Methods
adapter_name()
click to toggle source
# File lib/rollup/utils.rb, line 35 def adapter_name Rollup.connection.adapter_name end
check_dimensions()
click to toggle source
# File lib/rollup/utils.rb, line 31 def check_dimensions raise "Dimensions not supported" unless dimensions_supported? end
date_interval?(interval)
click to toggle source
# File lib/rollup/utils.rb, line 20 def date_interval?(interval) DATE_INTERVALS.include?(interval.to_s) end
dimensions_supported?()
click to toggle source
# File lib/rollup/utils.rb, line 24 def dimensions_supported? unless defined?(@dimensions_supported) @dimensions_supported = postgresql? && Rollup.column_names.include?("dimensions") end @dimensions_supported end
make_series(result, interval)
click to toggle source
# File lib/rollup/utils.rb, line 51 def make_series(result, interval) series = {} if Utils.date_interval?(interval) result.each do |row| series[row[0].to_date] = row[1] end else time_zone = Rollup.time_zone if result.any? && result[0][0].is_a?(Time) result.each do |row| series[row[0].in_time_zone(time_zone)] = row[1] end else utc = ActiveSupport::TimeZone["Etc/UTC"] result.each do |row| # row can be time or string series[utc.parse(row[0]).in_time_zone(time_zone)] = row[1] end end end series end
mysql?()
click to toggle source
# File lib/rollup/utils.rb, line 43 def mysql? adapter_name =~ /mysql/i end
postgresql?()
click to toggle source
# File lib/rollup/utils.rb, line 39 def postgresql? adapter_name =~ /postg/i end
sqlite?()
click to toggle source
# File lib/rollup/utils.rb, line 47 def sqlite? adapter_name =~ /sqlite/i end
time_sql(interval)
click to toggle source
# File lib/rollup/utils.rb, line 6 def time_sql(interval) if date_interval?(interval) if postgresql? "rollups.time::date" elsif sqlite? "date(rollups.time)" else "CAST(rollups.time AS date)" end else :time end end