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
-
#initialize ⇒ DefaultPlugin
constructor
A new instance of DefaultPlugin.
- #start_plugin ⇒ Object
Constructor Details
#initialize ⇒ DefaultPlugin
Returns a new instance of DefaultPlugin.
29 30 31 32 |
# File 'lib/currency_plugin/api.rb', line 29 def initialize() @raise_exception = false super() end |
Class Method Details
.initialize!(conf_dir = File.expand_path('../../', File.dirname(__FILE__))) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/currency_plugin/api.rb', line 13 def self.initialize!(conf_dir=File.('../../', File.dirname(__FILE__))) config_file = "#{conf_dir}/currency.yml" @@config = Killbill::CurrencyPlugin::Properties.new(config_file) @@config.parse! if defined?(JRUBY_VERSION) # See https://github.com/jruby/activerecord-jdbc-adapter/issues/302 require 'jdbc/mysql' Jdbc::MySQL.load_driver(:require) if Jdbc::MySQL.respond_to?(:load_driver) end ActiveRecord::Base.establish_connection(@@config[:database]) end |
Instance Method Details
#after_request ⇒ Object
return DB connections to the Pool if required
41 42 43 |
# File 'lib/currency_plugin/api.rb', line 41 def after_request ActiveRecord::Base.connection.close end |
#get_base_currencies(options = {}) ⇒ Object
45 46 47 48 49 |
# File 'lib/currency_plugin/api.rb', line 45 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
56 57 58 59 60 |
# File 'lib/currency_plugin/api.rb', line 56 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
62 63 64 65 66 67 68 69 70 |
# File 'lib/currency_plugin/api.rb', line 62 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
51 52 53 54 |
# File 'lib/currency_plugin/api.rb', line 51 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
72 73 74 75 76 77 78 79 80 |
# File 'lib/currency_plugin/api.rb', line 72 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
35 36 37 38 |
# File 'lib/currency_plugin/api.rb', line 35 def start_plugin super DefaultPlugin.initialize! @conf_dir end |