Project

luhn

0.04
No commit activity in last 3 years
No release in over 3 years
A small implementation of the Luhn algorithm.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.6.0
 Project Readme

Ruby class for handling basic Luhn number generation and verification¶ ↑

Includes a class to handle Swedish civic numbers (Personnummer) That interface supports checking validity (length, valid date and satisfies luhn), returning the sex, the control digit and generating random civic numbers.

Install¶ ↑

$ gem install luhn

Usage:¶ ↑

Basic Luhn¶ ↑

Luhn.valid?('0465827879483596') # true
Luhn.control_digit('046582787948359') # 6
Luhn.generate(n) # returns a random number of n length that satisfies luhn

'0465827879483596'.valid_luhn? # true
0465827879483596.valid_luhn?   # true

Swedish civic numbers¶ ↑

civic_number = Luhn::CivicNumber.new('19391030-3183')
civic_number.valid? # true
civic_number.sex    # 'male'
civic_number.male?  # true
civic_number.control_digit # 3

'391030-3183'.civic_number? # true
3910303183.civic_number?    # true

About the Luhn algorithm (from en.wikipedia.org/wiki/Luhn_formula)¶ ↑

The Luhn algorithm or Luhn formula, also known as the “modulus 10” or “mod 10” algorithm, is a simple checksum formula used to validate a variety of identification numbers, such as credit card numbers, IMEI numbers, National Provider Identifier numbers in US and Canadian Social Insurance Numbers. It was created by IBM scientist Hans Peter Luhn and described in U.S. Patent No. 2,950,048, filed on January 6, 1954, and granted on August 23, 1960.

Copyright © 2010 Joel Junström. See LICENSE for details.