Module: Credy::CreditCard
Instance Method Summary collapse
-
#generate(options = {}) ⇒ Object
Generate a credit card number.
-
#infos(number) ⇒ Object
Returns information about a number.
-
#validate(number) ⇒ Object
Validates a number.
Instance Method Details
#generate(options = {}) ⇒ Object
Generate a credit card number
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/credy.rb', line 15 def generate( = {}) rule = find_rule() || return number = generate_from_rule(rule) { number: number, type: rule[:type], country: rule[:country] } end |
#infos(number) ⇒ Object
Returns information about a number
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/credy.rb', line 27 def infos(number) rules = Rules.all.select do |rule| valid = true # Check number of digits lengths = rule[:length].is_a?(Array) ? rule[:length] : [rule[:length]] valid = false unless lengths.include? number.length # Check prefix valid = false unless !(number =~ Regexp.new("^#{rule[:prefix]}")).nil? valid end if rules rules[0] else nil end end |
#validate(number) ⇒ Object
Validates a number
48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/credy.rb', line 48 def validate(number) criterii = {} criterii[:luhn] = Check.luhn number criterii[:type] = !!infos(number) valid = criterii.all? { |_, v| v == true } { valid: valid, details: criterii } end |