Module: SimpleRecurring

Defined in:
lib/simple_recurring.rb,
lib/simple_recurring/engine.rb,
lib/simple_recurring/version.rb,
app/models/simple_recurring/promotions.rb,
app/models/simple_recurring/credit_card.rb,
app/models/simple_recurring/subscription.rb,
lib/simple_recurring/processor_adapters/base_adapter.rb

Defined Under Namespace

Modules: ProcessorAdapters Classes: CreditCard, Engine, Promotions, Subscription

Constant Summary collapse

VERSION =
'1.0.1'

Class Method Summary collapse

Class Method Details

.adapter(adapter) ⇒ Object

Load adapter by name.

Params: String adapter

Returns: Implementation of SimpleRecurring::ProcessorAdapters::BaseAdapter



11
12
13
# File 'lib/simple_recurring.rb', line 11

def self.adapter(adapter)
  "SimpleRecurring::ProcessorAdapters::#{adapter.capitalize}".constantize
end

.adaptersObject

Finds all adapters and versions. Warning: This is appropriate for use in an admin panel where the processor might be selected. It is NOT appropriate for use on user facing pages as it searches the file system for all available adapters and loads them.

Returns: Hash of adapters with their display name and version.



21
22
23
24
25
26
27
28
# File 'lib/simple_recurring.rb', line 21

def self.adapters
  require_adapters
  SimpleRecurring::ProcessorAdapters.constants.select { |c|
    SimpleRecurring::ProcessorAdapters.const_get(c).is_a?(Class) &&
        SimpleRecurring::ProcessorAdapters.const_get(c) != SimpleRecurring::ProcessorAdapters::BaseAdapter &&
        SimpleRecurring::ProcessorAdapters.const_get(c).ancestors.include?(SimpleRecurring::ProcessorAdapters::BaseAdapter)
  }.reduce({}) { |h, a| h[a] = { display_name: adapter(a).display_name, version: adapter(a).version }; h }
end