Skip to content

Commit f0adaa3

Browse files
committed
Removed state from Luhn.
1 parent cf567e9 commit f0adaa3

File tree

2 files changed

+7
-19
lines changed

2 files changed

+7
-19
lines changed

library/Xi/Algorithm/Luhn.php

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,20 @@
44

55
class Luhn
66
{
7-
/**
8-
* @var integer
9-
*/
10-
private $number;
11-
12-
/**
13-
* @param integer $number
14-
*/
15-
public function __construct($number)
16-
{
17-
$this->number = $number;
18-
}
19-
207
/**
218
* Returns the given number with luhn algorithm applied.
229
*
2310
* For example 456 becomes 4564.
2411
*
12+
* @param integer $number
2513
* @return integer
2614
*/
27-
public function generate()
15+
public function generate($number)
2816
{
2917
$stack = 0;
30-
$number = str_split(strrev($this->number), 1);
18+
$numbers = str_split(strrev($number), 1);
3119

32-
foreach ($number as $key => $value) {
20+
foreach ($numbers as $key => $value) {
3321
if ($key % 2 === 0) {
3422
$value = array_sum(str_split($value * 2, 1));
3523
}
@@ -43,6 +31,6 @@ public function generate()
4331
$stack -= 10;
4432
}
4533

46-
return (int) (implode('', array_reverse($number)) . abs($stack));
34+
return (int) (implode('', array_reverse($numbers)) . abs($stack));
4735
}
4836
}

tests/Xi/Tests/Algorithm/LuhnTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ class LuhnTest extends \PHPUnit_Framework_TestCase
1818
*/
1919
public function generatesLuhnChecksum($number, $expected)
2020
{
21-
$luhn = new Luhn($number);
22-
$luhnedNumber = $luhn->generate();
21+
$luhn = new Luhn();
22+
$luhnedNumber = $luhn->generate($number);
2323

2424
$this->assertInternalType('integer', $luhnedNumber);
2525
$this->assertEquals($expected, $luhnedNumber);

0 commit comments

Comments
 (0)