frankfurter/lib/day.rb
Hakan Ensari cf373f3efb Denormalise database schema
This way, we will have no issue fitting the entire dataset on the free tier of Heroku
2018-10-07 01:08:45 +01:00

23 lines
601 B
Ruby

# frozen_string_literal: true
class Day < Sequel::Model
dataset_module do
def latest(date = Date.today)
where(date: select(:date).where(Sequel.lit('date <= ?', date))
.order(Sequel.desc(:date))
.limit(1))
end
def between(interval)
where(date: interval)
end
def currencies
select(:date,
Sequel.lit('rates.key').as(:iso_code),
Sequel.lit('rates.value::text::float').as(:rate))
.join(Sequel.function(:jsonb_each, :rates).lateral.as(:rates), true)
end
end
end