class Docdata::Ideal

This class bundles all the needed logic and methods for IDEAL specific stuff.

Public Class Methods

banks() click to toggle source

List of supported banks.

@visibility public

@example

Docdata.banks

For the lack of an available list of banks by Docdata, this gem uses the list provided by competitor Mollie.

@return [Array<Docdata::Ideal>] list of supported Bank‘s.

# File lib/docdata/ideal.rb, line 19
def self.banks
  begin
    @source ||= open('https://secure.mollie.nl/xml/ideal?a=banklist')
  rescue 
    # in case the mollie API isn't available
    # use the cached version (august 2014) of the XML file
    @source = open("#{File.dirname(__FILE__)}/xml/bank-list.xml")
  end
  @response ||= Nokogiri::XML(@source)
  @list = []
  @response.xpath("//bank").each do |b|
    bank = Docdata::Bank.new(
      id: b.xpath("bank_id").first.content,
      name: b.xpath("bank_name").first.content
    )
    @list << bank
  end
  return @list
end