Sha256: 005f74fce6a8609d795e32f6c40c8c149dc12172a6e2c5433fa9bcf5e43862d8

Contents?: true

Size: 940 Bytes

Versions: 5

Compression:

Stored size: 940 Bytes

Contents

require 'active_support/core_ext/object/blank'

class BankingData::DutchBank < BankingData::Bank
  extend ActiveModel::Naming
  include ActiveModel::Conversion
  include ActiveModel::AttributeMethods

  LOCALE = :nl

  attr_accessor :bank_id, :bic, :name

  class << self

    delegate :where, :only, to: :query
    delegate :map, :each, to: :all

    def all
      @@all ||= get_all
    end

    private

    def get_all
      banks = []
      SmarterCSV.process(file, opts).each do |line|
        bank_id = line[:bank_identifier].to_s
        bic = line[:bic]
        name = line[:naam_bank].to_s
        if bank_id && bic && name
          banks << new(name: name, bank_id: bank_id, bic: bic)
        end
      end
      banks.uniq
    end

    private

    def file
      File.dirname(__FILE__) +
        '/../../data/BIC-lijst-NL.csv'
    end

    def opts
      {
        col_sep: ',',
        skip_lines: 1
      }
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
banking_data-0.9.4 lib/banking_data/dutch_bank.rb
banking_data-0.9.3 lib/banking_data/dutch_bank.rb
banking_data-0.9.2 lib/banking_data/dutch_bank.rb
banking_data-0.9.1 lib/banking_data/dutch_bank.rb
banking_data-0.9.0 lib/banking_data/dutch_bank.rb