class SepaClearer::Clearer
Constants
- ATTRIBUTES
Make sure we always have the correct order of columns
Attributes
db[RW]
Public Class Methods
new(db_name = 'deutsche_bundesbank')
click to toggle source
# File lib/sepa_clearer/clearer.rb, line 10 def initialize(db_name = 'deutsche_bundesbank') self.db = SQLite3::Database.new File.join(File.dirname(__FILE__), '../..', "data/#{db_name}.db") end
Public Instance Methods
add(provider)
click to toggle source
# File lib/sepa_clearer/clearer.rb, line 14 def add(provider) data = boolean_to_integers(provider.to_a) db.execute "INSERT INTO payment_providers (#{ATTRIBUTES.join(',')}) VALUES (?, ?, ?, ?, ?, ?)", data end
all()
click to toggle source
# File lib/sepa_clearer/clearer.rb, line 19 def all db.execute("SELECT #{ATTRIBUTES.join(',')} FROM payment_providers ORDER BY name").map do |row| PaymentProvider.new(hash_from_result(row)) end end
delete()
click to toggle source
# File lib/sepa_clearer/clearer.rb, line 31 def delete db.execute("DELETE FROM payment_providers").first end
find_by_bic(bic)
click to toggle source
# File lib/sepa_clearer/clearer.rb, line 25 def find_by_bic(bic) db.execute("SELECT #{ATTRIBUTES.join(',')} FROM payment_providers WHERE bic = ?", normalize_bic(bic)).map do |row| PaymentProvider.new(hash_from_result(row)) end.first end
normalize_bic(bic)
click to toggle source
# File lib/sepa_clearer/clearer.rb, line 35 def normalize_bic(bic) bic.to_s.ljust(11, 'X').upcase end
Protected Instance Methods
boolean_to_integers(array)
click to toggle source
# File lib/sepa_clearer/clearer.rb, line 46 def boolean_to_integers(array) array.map do |element| if element.kind_of?(TrueClass) || element.kind_of?(FalseClass) element ? 1 : 0 else element end end end
hash_from_result(raw_array)
click to toggle source
# File lib/sepa_clearer/clearer.rb, line 41 def hash_from_result(raw_array) raw_array_with_boolean = integers_to_boolean(raw_array) Hash[ATTRIBUTES.zip(raw_array_with_boolean)] end
integers_to_boolean(array)
click to toggle source
# File lib/sepa_clearer/clearer.rb, line 56 def integers_to_boolean(array) array.map do |element| if element.kind_of?(Integer) element == 1 else element end end end