Sha256: 5f5b7a7e0aa61db43e31be648f7954567e18e7d4ed4aa6f646350094dba475a4
Contents?: true
Size: 1.59 KB
Versions: 3
Compression:
Stored size: 1.59 KB
Contents
module Groupdate module Adapters class SQLiteAdapter < BaseAdapter def group_clause raise Groupdate::Error, "Time zones not supported for SQLite" unless @time_zone.utc_offset.zero? raise Groupdate::Error, "day_start not supported for SQLite" unless day_start.zero? query = if period == :week ["strftime('%Y-%m-%d 00:00:00 UTC', #{column}, '-6 days', ?)", "weekday #{(week_start + 1) % 7}"] elsif period == :custom ["datetime((strftime('%s', #{column}) / ?) * ?, 'unixepoch')", n_seconds, n_seconds] else format = case period when :minute_of_hour "%M" when :hour_of_day "%H" when :day_of_week "%w" when :day_of_month "%d" when :day_of_year "%j" when :month_of_year "%m" when :second "%Y-%m-%d %H:%M:%S UTC" when :minute "%Y-%m-%d %H:%M:00 UTC" when :hour "%Y-%m-%d %H:00:00 UTC" when :day "%Y-%m-%d 00:00:00 UTC" when :month "%Y-%m-01 00:00:00 UTC" when :quarter raise Groupdate::Error, "Quarter not supported for SQLite" else # year "%Y-01-01 00:00:00 UTC" end ["strftime(?, #{column})", format] end @relation.send(:sanitize_sql_array, query) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
groupdate-5.2.4 | lib/groupdate/adapters/sqlite_adapter.rb |
groupdate-5.2.3 | lib/groupdate/adapters/sqlite_adapter.rb |
groupdate-5.2.2 | lib/groupdate/adapters/sqlite_adapter.rb |