frankfurter/lib/rate.rb
BadMark d0a43e357a
Some checks failed
CI/CD Pipeline / test (push) Has been cancelled
CI/CD Pipeline / publish (push) Has been cancelled
CI/CD Pipeline / release (push) Has been cancelled
up
2026-05-21 01:38:14 -06:00

25 lines
505 B
Ruby

# frozen_string_literal: true
require "bucket"
require "db"
require "rate_scopes"
class Rate < Sequel::Model(:rates)
include RateScopes
class << self
def date_column = :date
end
dataset_module do
def downsample(precision)
sampler = Bucket.expression(precision)
select(:base, :provider, :quote)
.select_append { avg(rate).as(rate) }
.select_append(sampler.as(:date))
.group(:base, :provider, :quote, sampler)
.order(:date)
end
end
end