Class: Faker::Finance
- Inherits:
-
Base
- Object
- Base
- Faker::Finance
show all
- Defined in:
- lib/faker/default/finance.rb
Constant Summary
collapse
- CREDIT_CARD_TYPES =
%i[visa mastercard discover american_express
diners_club jcb switch solo dankort
maestro forbrugsforeningen laser].freeze
Constants inherited
from Base
Base::Letters, Base::Numbers, Base::ULetters
Class Method Summary
collapse
Methods inherited from Base
bothify, disable_enforce_available_locales, fetch, fetch_all, flexible, letterify, method_missing, numerify, parse, rand, rand_in_range, regexify, resolve, respond_to_missing?, sample, shuffle, translate, unique, with_locale
Class Method Details
.credit_card(*types) ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/faker/default/finance.rb', line 10
def credit_card(*types)
types = CREDIT_CARD_TYPES if types.empty?
type = sample(types)
template = numerify(fetch("finance.credit_card.#{type}"))
multiplier = 1
luhn_sum = template.gsub(/[^0-9]/, '').split('').reverse.map(&:to_i).inject(0) do |sum, digit|
multiplier = (multiplier == 2 ? 1 : 2)
sum + (digit * multiplier).to_s.split('').map(&:to_i).inject(0) { |digit_sum, cur| digit_sum + cur }
end
luhn_digit = (10 - (luhn_sum % 10)) % 10
template.gsub('L', luhn_digit.to_s)
end
|
.vat_number(country = 'BR') ⇒ Object
29
30
31
32
33
|
# File 'lib/faker/default/finance.rb', line 29
def vat_number(country = 'BR')
numerify(fetch("finance.vat_number.#{country}"))
rescue I18n::MissingTranslationData
raise ArgumentError, "Could not find vat number for #{country}"
end
|
.vat_number_keys ⇒ Object
35
36
37
|
# File 'lib/faker/default/finance.rb', line 35
def vat_number_keys
translate('faker.finance.vat_number').keys
end
|