Class: Killbill::CurrencyPlugin::DefaultPlugin
- Inherits:
-
Plugin::Currency
- Object
- Plugin::Currency
- Killbill::CurrencyPlugin::DefaultPlugin
- Defined in:
- lib/currency_plugin/api.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#after_request ⇒ Object
return DB connections to the Pool if required.
- #get_base_currencies(options = {}) ⇒ Object
- #get_conversion_dates(base_currency, options = {}) ⇒ Object
- #get_current_rates(base_currency, options = {}) ⇒ Object
- #get_latest_conversion_date(base_currency, options = {}) ⇒ Object
- #get_rates(base_currency, conversion_date, options = {}) ⇒ Object
- #start_plugin ⇒ Object
Class Method Details
.initialize! ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/currency_plugin/api.rb', line 12 def self.initialize! require 'active_record' require 'active_record/bogacs' require 'arjdbc' ::ActiveRecord::ConnectionAdapters::ConnectionHandler.connection_pool_class = ::ActiveRecord::Bogacs::FalsePool db_config = { :adapter => :mysql, # See KillbillActivator#KILLBILL_OSGI_JDBC_JNDI_NAME :data_source => Java::JavaxNaming::InitialContext.new.lookup('killbill/osgi/jdbc'), # Since AR-JDBC 1.4, to disable session configuration :configure_connection => false } ActiveRecord::Base.establish_connection(db_config) end |
Instance Method Details
#after_request ⇒ Object
return DB connections to the Pool if required
34 35 36 |
# File 'lib/currency_plugin/api.rb', line 34 def after_request ActiveRecord::Base.connection.close end |
#get_base_currencies(options = {}) ⇒ Object
38 39 40 41 42 |
# File 'lib/currency_plugin/api.rb', line 38 def get_base_currencies( = {}) (Killbill::CurrencyPlugin::CurrencyUpdate.distinct_base_currencies || []).map do |c| c.base_currency end end |
#get_conversion_dates(base_currency, options = {}) ⇒ Object
49 50 51 52 53 |
# File 'lib/currency_plugin/api.rb', line 49 def get_conversion_dates(base_currency, = {}) (Killbill::CurrencyPlugin::CurrencyUpdate.historical_base_currencies(base_currency) || []).map do |r| r.conversion_date.utc end end |
#get_current_rates(base_currency, options = {}) ⇒ Object
55 56 57 58 59 60 61 62 |
# File 'lib/currency_plugin/api.rb', line 55 def get_current_rates(base_currency, = {}) base_latest = Killbill::CurrencyPlugin::CurrencyUpdate.latest_base_currency(base_currency) if base_latest.nil? || base_latest.size == 0 return [] end get_rates_for_currency_update(base_latest[0].id, base_currency, base_latest[0].conversion_date) end |
#get_latest_conversion_date(base_currency, options = {}) ⇒ Object
44 45 46 47 |
# File 'lib/currency_plugin/api.rb', line 44 def get_latest_conversion_date(base_currency, = {}) res = Killbill::CurrencyPlugin::CurrencyUpdate.latest_base_currency(base_currency) res[0].conversion_date.utc unless res.size == 0 end |
#get_rates(base_currency, conversion_date, options = {}) ⇒ Object
64 65 66 67 68 69 70 71 |
# File 'lib/currency_plugin/api.rb', line 64 def get_rates(base_currency, conversion_date, = {}) (Killbill::CurrencyPlugin::CurrencyUpdate.historical_base_currencies(base_currency) || []).each do |e| if Time.at(e.conversion_date) <= Time.at(conversion_date) return get_rates_for_currency_update(e.id, base_currency, e.conversion_date) end end [] end |
#start_plugin ⇒ Object
28 29 30 31 |
# File 'lib/currency_plugin/api.rb', line 28 def start_plugin super DefaultPlugin.initialize! end |