Sha256: b7d9e978699cba88bd1ec83ce7b1d814dffa6b26a9e5e7e2e5bb04f66a76c8af
Contents?: true
Size: 1.94 KB
Versions: 1
Compression:
Stored size: 1.94 KB
Contents
module Killbill # There are various types of plugins one can write for Killbill: # # 1) notifications plugins, which listen to external bus events and can react to it # 2) payment plugins, which are used to issue payments against a payment gateway module Plugin class PluginBase attr_reader :active # Called by the Killbill lifecycle when initializing the plugin def start_plugin @active = true end # Called by the Killbill lifecycle when stopping the plugin def stop_plugin @active = false end attr_accessor :account_user_api, :analytics_sanity_api, :analytics_user_api, :catalog_user_api, :entitlement_migration_api, :entitlement_timeline_api, :entitlement_transfer_api, :entitlement_user_api, :invoice_migration_api, :invoice_payment_api, :invoice_user_api, :meter_user_api, :overdue_user_api, :payment_api, :tenant_user_api, :usage_user_api, :audit_user_api, :custom_field_user_api, :export_user_api, :tag_user_api # Called by the Killbill lifecycle when instantiating the plugin def initialize(apis_map = {}) @active = false apis_map.each do |api_name, api_instance| begin self.send("#{api_name}=", api_instance) rescue NoMethodError warn "Ignoring unsupported API: #{api_name}" end end end class APINotAvailableError < NotImplementedError end def method_missing(m, *args, &block) raise APINotAvailableError.new("API #{m} is not available") if m =~ /_api$/ end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
killbill-1.0.0 | lib/killbill/plugin.rb |