Sha256: 2131440e00a92350b44cd05546820e9020d1396886ed03834f3e1b6227799dac
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 KB
Contents
# frozen_string_literal: true require_relative 'array_utils' require_relative 'random_utils' require_relative 'unique_utils' module FFaker module ModuleUtils include RandomUtils def k(arg) FFaker::ArrayUtils.const_array(arg) end def const_missing(const_name) if const_name.match?(/[a-z]/) # Not a constant, probably a class/module name. super const_name else mod_name = ancestors.first.to_s.split('::').last data_path = "#{FFaker::BASE_LIB_PATH}/ffaker/data/#{underscore(mod_name)}/#{underscore(const_name.to_s)}" data = k File.read(data_path, mode: 'r:UTF-8').split("\n") const_set const_name, data data end end def underscore(string) string.gsub('::', '/') .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2') .gsub(/([a-z\d])([A-Z])/, '\1_\2') .tr('-', '_') .downcase end def unique(max_retries = 10_000) FFaker::UniqueUtils.add_instance(self, max_retries) end # http://en.wikipedia.org/wiki/Luhn_algorithm def luhn_check(number) multiplications = [] number.chars.each_with_index do |digit, i| multiplications << i.even? ? digit.to_i * 2 : digit.to_i end sum = 0 multiplications.each do |num| num.to_s.each_byte do |character| sum += character.chr.to_i end end control_digit = (sum % 10).zero? ? 0 : (((sum / 10) + 1) * 10) - sum control_digit.to_s end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ffaker-2.23.0 | lib/ffaker/utils/module_utils.rb |