Module: Sequel::CurrencyRates
- Defined in:
- lib/sequel/extensions/currency_rates.rb
Overview
Extension for currency-conversion via currency_rates table
Instance Method Summary collapse
-
#table_name ⇒ Symbol
Returns a table name.
-
#with_rates(aliaz = :currency_rates, table: table_name, rates_table: Sequel[:currency_rates], currency_column: :currency, time_column: :created_at) ⇒ Sequel::Dataset
Join a rates table.
Instance Method Details
#table_name ⇒ Symbol
Returns a table name
37 38 39 |
# File 'lib/sequel/extensions/currency_rates.rb', line 37 def table_name respond_to?(:first_source_alias) ? first_source_alias : super end |
#with_rates(aliaz = :currency_rates, table: table_name, rates_table: Sequel[:currency_rates], currency_column: :currency, time_column: :created_at) ⇒ Sequel::Dataset
Join a rates table
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/sequel/extensions/currency_rates.rb', line 17 def with_rates( aliaz = :currency_rates, table: table_name, rates_table: Sequel[:currency_rates], currency_column: :currency, time_column: :created_at ) table = Sequel[table] rates = Sequel[aliaz] currency_expr = wrap_if_symbol(currency_column, table) time_expr = wrap_if_symbol(time_column, table) join_expr = (rates[:currency] =~ currency_expr) & rates[:period].pg_range.contains(time_expr) left_join(rates_table.as(aliaz), join_expr) end |