Module: FFaker::Bank

Extended by:
Bank, ModuleUtils
Included in:
Bank
Defined in:
lib/ffaker/bank.rb

Constant Summary collapse

COUNTRIES =
{
  'AA' => 'AL##########################', # Albania
  'AD' => 'AD######################', # Andorra
  'AT' => 'AT##################', # Austria
  'AZ' => 'AZ##????####################', # Azerbaijan
  'BH' => 'BH##????##############', # Bahrain
  'BY' => 'BY##????####################', # Belarus
  'BE' => 'BE##############', # Belgium
  'BA' => 'BA##################', # Bosnia and Herzegovina
  'BR' => 'BR#########################P#', # Brazil
  'BG' => 'BG##????##############', # Bulgaria
  'CR' => 'CR####################', # Costa Rica
  'HR' => 'HR###################', # Croatia
  'CY' => 'CY##########################', # Cyprus
  'CZ' => 'CZ######################', # Czech Republic
  'DK' => 'DK################', # Denmark
  'DO' => 'DO##????####################', # Dominican Republic
  'SV' => 'SV##????####################', # El Salvador
  'EE' => 'EE##################', # Estonia
  'FO' => 'FO################', # Faroe Islands
  'FI' => 'FI################', # Finland
  'FR' => 'FR#########################', # France
  'GE' => 'GE##??################', # Georgia
  'DE' => 'DE####################', # Germany
  'GI' => 'GI##????###############', # Gibraltar
  'GR' => 'GR#########################', # Greece
  'GL' => 'GL################', # Greenland
  'GT' => 'GT##AGRO####################', # Guatemala
  'VA' => 'VA####################', # Holy See
  'HU' => 'HU##########################', # Hungary
  'IS' => 'IS########################', # Iceland
  'IQ' => 'IQ##????###############', # Iraq
  'IE' => 'IE##????##############', # Ireland
  'IL' => 'IL#####################', # Israel
  'IT' => 'IT##X######################', # Italy
  'JO' => 'JO##????######################', # Jordan
  'KZ' => 'KZ##################', # Kazakhstan
  'XK' => 'XK##################', # Kosovo
  'KW' => 'KW##????######################', # Kuwait
  'LV' => 'LV##????#############', # Latvia
  'LB' => 'LB##########################', # Lebanon
  'LI' => 'LI###################', # Liechtenstein
  'LT' => 'LT##################', # Lithuania
  'LU' => 'LU##################', # Luxembourg
  'MT' => 'MT##MALT#######################', # Malta
  'MR' => 'MR#########################', # Mauritania
  'MU' => 'MU##????###################MUR', # Mauritius
  'MD' => 'MD##??##################', # Moldova
  'MC' => 'MC#########################', # Monaco
  'ME' => 'ME####################', # Montenegro
  'NL' => 'NL##????##########', # Netherlands
  'MK' => 'MK#################', # North Macedonia
  'NO' => 'NO#############', # Norway
  'PK' => 'PK##????################', # Pakistan
  'PS' => 'PS##PALS#####################', # Palestine
  'PL' => 'PL##########################', # Poland
  'PT' => 'PT#######################', # Portugal
  'QA' => 'QA##????#####################', # Qatar
  'RO' => 'RO##????################', # Romania
  'LC' => 'LC##????########################', # Saint Lucia
  'SM' => 'SM##P######################', # San Marino
  'ST' => 'ST#######################', # Sao Tome and Principe
  'SA' => 'SA######################', # Saudi Arabia
  'RS' => 'RS####################', # Serbia
  'SC' => 'SC##????####################USD', # Seychelles
  'SK' => 'SK######################', # Slovak Republic
  'SI' => 'SI#################', # Slovenia
  'ES' => 'ES######################', # Spain
  'SE' => 'SE######################', # Sweden
  'CH' => 'CH###################', # Switzerland
  'TL' => 'TL#####################', # Timor-Leste
  'TN' => 'TN######################', # Tunisia
  'TR' => 'TR########################', # Turkey
  'UA' => 'UA###########################', # Ukraine
  'AE' => 'AE#####################', # United Arab Emirates
  'GB' => 'GB##????##############', # United Kingdom
  'VG' => 'VG##????################' # Virgin Islands, British
}.freeze

Instance Method Summary collapse

Methods included from ModuleUtils

const_missing, k, luhn_check, underscore, unique

Methods included from RandomUtils

#fetch_sample, #rand, #shuffle

Instance Method Details

#card_expiry_date(year_range: 5, year_latest: -5,, format: '%m/%y') ⇒ Object



98
99
100
# File 'lib/ffaker/bank.rb', line 98

def card_expiry_date(year_range: 5, year_latest: -5, format: '%m/%y')
  FFaker::Time.date({ year_range: year_range, year_latest: year_latest }).strftime(format)
end

#card_numberObject



94
95
96
# File 'lib/ffaker/bank.rb', line 94

def card_number
  FFaker.numerify('#### #### #### ####')
end

#card_typeObject



102
103
104
# File 'lib/ffaker/bank.rb', line 102

def card_type
  fetch_sample(CARD_TYPES)
end

#iban(country_code: nil) ⇒ Object



87
88
89
90
91
92
# File 'lib/ffaker/bank.rb', line 87

def iban(country_code: nil)
  return formatify_iban(fetch_sample(COUNTRIES.values)) unless country_code

  check_country_existence(country_code)
  formatify_iban(COUNTRIES[country_code.upcase])
end