luhnAlgorithmCheck 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/luhnAlgorithmCheck.rb +4 -25
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 214e31acc25da580cb0b705c94498ffe923ca4ac4631aa845862bbb1bf20a30a
|
4
|
+
data.tar.gz: 3e30a681c39f62edd7d7959f8a6028d2ea1cddeb660b44bcea848016831d3d86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 72132d9061c4fc077ae1d792773ec61d2689e8b887124d75f36b35703b138549ed64ffc21b967643d7cdb0a4f9e5e4960cd554f5194705ab9056679afdacdf5d
|
7
|
+
data.tar.gz: 9c444cf3c72992e73a910652efed6c6477043383af6c9f8e8afbedd77aa188edc025bcb702bc33410ce0718e15273a23b206e6d0a90ad5af8b34f7c2afd5242e
|
data/lib/luhnAlgorithmCheck.rb
CHANGED
@@ -5,31 +5,10 @@ class LuhnAlgorithm
|
|
5
5
|
@num = num
|
6
6
|
end
|
7
7
|
|
8
|
-
def
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
def luhn_valid?()
|
9
|
+
num.scan(/\d/).reverse.each_slice(2)
|
10
|
+
.sum { |i, k = 0| i.to_i + ((k.to_i)*2).digits.sum }
|
11
|
+
.modulo(10).zero?
|
12
12
|
end
|
13
13
|
|
14
|
-
def checksum
|
15
|
-
addends.inject(:+)
|
16
|
-
end
|
17
|
-
|
18
|
-
def valid?
|
19
|
-
checksum % 10 == 0
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.create(num)
|
23
|
-
[*0..9].each do |digit|
|
24
|
-
possible = Luhn.new("#{num}#{digit}".to_i)
|
25
|
-
return possible.num if possible.valid?
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
private
|
30
|
-
def raw_addends
|
31
|
-
num.to_s.reverse.chars.map.with_index do |digit, index|
|
32
|
-
index.odd? ? digit.to_i * 2 : digit.to_i
|
33
|
-
end.reverse
|
34
|
-
end
|
35
14
|
end
|