Class: Luhn::LuhnValue

Inherits:
Object
  • Object
show all
Defined in:
lib/luhn.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(number) ⇒ LuhnValue

Returns a new instance of LuhnValue.



20
21
22
# File 'lib/luhn.rb', line 20

def initialize number
  self.number = number
end

Instance Attribute Details

#numberObject

Returns the value of attribute number.



18
19
20
# File 'lib/luhn.rb', line 18

def number
  @number
end

Class Method Details

.generate(size, options = {}) ⇒ Object



24
25
26
27
28
29
# File 'lib/luhn.rb', line 24

def self.generate size, options = {}
  generated = options[:prefix] || ''
  (size - generated.size - 1).times { |i| generated += rand(10).to_s }

  generated + self.new(generated).control_digit.to_s
end

Instance Method Details

#control_digitObject



35
36
37
38
# File 'lib/luhn.rb', line 35

def control_digit
  sum = checksum(:even)
  (sum % 10 != 0) ? 10 - (sum % 10) : 0
end

#valid?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/luhn.rb', line 31

def valid?
  number != "" && checksum(:odd) % 10 == 0
end