Skip to content

Commit

Permalink
Clean up the code
Browse files Browse the repository at this point in the history
  • Loading branch information
Riimu committed Jun 1, 2014
1 parent 3ddb3cd commit 7f7f373
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 26 deletions.
1 change: 0 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,3 @@
## v1.0.2 (2014-06-01) ##

* Code cleanup and documentation fixes

33 changes: 14 additions & 19 deletions src/BaseConverter.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,8 @@ class BaseConverter implements Converter
*/
public function __construct ($sourceBase, $targetBase)
{
$this->source = $sourceBase instanceof NumberBase
? $sourceBase : new NumberBase($sourceBase);
$this->target = $sourceBase instanceof NumberBase
? $targetBase : new NumberBase($targetBase);
$this->source = $sourceBase instanceof NumberBase ? $sourceBase : new NumberBase($sourceBase);
$this->target = $sourceBase instanceof NumberBase ? $targetBase : new NumberBase($targetBase);

try {
$this->converter = new ReplaceConverter($this->source, $this->target);
Expand All @@ -86,36 +84,33 @@ public function __construct ($sourceBase, $targetBase)
* number base, false will be returned instead.
*
* @param string $number The number to convert
* @return string|boolean The converted number or false on error
* @return string|false The converted number or false on error
*/
public function convert ($number)
{
$integer = (string) $number;
$fractions = '';
$dot = strpos($integer, '.');
$sign = substr($integer, 0, 1);
$sign = '';

if ($dot !== false) {
$fractions = substr($integer, $dot + 1);
$integer = substr($integer, 0, $dot);
}
if ($sign === '+' || $sign === '-') {
if (isset($integer[0]) && in_array($integer[0], ['+', '-'])) {
$sign = $integer[0];
$integer = substr($integer, 1);
}

try {
$integer = $this->source->splitString($integer);

if ($dot !== false) {
$fractions = $this->source->splitString($fractions);
if (($pos = strpos($integer, '.')) !== false) {
$fractions = '.' . implode('', $this->convertFractions(
$this->source->splitString(substr($integer, $pos + 1))
));
$integer = substr($integer, 0, $pos);
}

$integer = implode('', $this->convertInteger($this->source->splitString($integer)));
} catch (\InvalidArgumentException $ex) {
return false;
}

return ($sign === '+' || $sign === '-' ? $sign : '') .
implode('', $this->convertInteger($integer)) .
($dot !== false ? '.' . implode('', $this->convertFractions($fractions)) : '');
return $sign . $integer . $fractions;
}

public function setPrecision($precision)
Expand Down
4 changes: 2 additions & 2 deletions src/DecimalConverter.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ public function convertFractions(array $number)
$target = gmp_init($this->target->getRadix());
$dividend = $this->toDecimal($this->source->getValues($number));
$divisor = $this->toDecimal([1] + array_fill(1, max(count($number), 1), 0));
$digits = $this->precision > 0 ? $this->precision
: $this->countDigits(count($number)) + abs($this->precision);
$digits = $this->precision > 0
? $this->precision : $this->countDigits(count($number)) + abs($this->precision);
$zero = gmp_init('0');
$result = [];

Expand Down
6 changes: 3 additions & 3 deletions src/NumberBase.php
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ private function setBaseInteger ($integer)

if ($integer <= strlen(self::$integerBase)) {
$this->digits = str_split(substr(self::$integerBase, 0, $integer));
} elseif ($integer == 64) {
} elseif ($integer === 64) {
$this->digits = str_split(self::$integerBase64);
} elseif ($integer <= 256) {
for ($i = 0; $i < $integer; $i++) {
Expand All @@ -162,9 +162,9 @@ private function setBaseInteger ($integer)
private function setBaseString ($string)
{
if (strlen($string) < 2) {
throw new \InvalidArgumentException("Number base needs at least 2 characters");
throw new \InvalidArgumentException('Number base needs at least 2 characters');
} elseif (strlen(count_chars($string, 3)) !== strlen($string)) {
throw new \InvalidArgumentException("Duplicate characters in the number base");
throw new \InvalidArgumentException('Duplicate characters in the number base');
}

$this->radix = strlen($string);
Expand Down
2 changes: 1 addition & 1 deletion src/ReplaceConverter.php
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ private function zeroPad(array $number, $right)

if ($log > 1 && count($number) % $log) {
$pad = count($number) + ($log - count($number) % $log);
$number = array_pad($number, $right ? $pad: -$pad, $this->source->getDigit(0));
$number = array_pad($number, $right ? $pad : -$pad, $this->source->getDigit(0));
}

return $number;
Expand Down

0 comments on commit 7f7f373

Please sign in to comment.