Skip to content
This repository has been archived by the owner on Jan 30, 2020. It is now read-only.

Commit

Permalink
Revert "Merge branch 'superdweebie-rand-bugfix'"
Browse files Browse the repository at this point in the history
This reverts commit 002ce3dee6107f2c71af8e7ce0ed1f43693ddadf, reversing
changes made to 0023a96e4756112661c11dbf4e293f4be110809a.

Note: we will need to revert this revert when merging develop to master for the
2.3.0 release. See http://git-scm.com/blog/2010/03/02/undoing-merges.html - the
section on "Reverting the Revert," for details.
  • Loading branch information
weierophinney committed Aug 19, 2013
148 parents 50a0783 + 9b5478d + 91a23e2 + 8649d44 + 3f353b0 + d340adb + 1e0e8f4 + 5c4289e + fb94cca + 2a3844c + 906bbcf + 3d9b8bb + 84844ae + 62fc651 + b0a3dd4 + 0dca0ef + 910bbbf + e574b9b + f30ec7d + 1fa84de + 41b8543 + 9e2c9d5 + 913f51c + 39924f3 + c2a11e1 + 61b9322 + 413a38b + e51b2b8 + 20e328b + 6437ec0 + e9b8476 + 95e54a0 + 7ea3aed + df6a706 + a82fc82 + 7c2a059 + 4fefb53 + 599ee3a + ea3fc65 + f6c04c2 + 6591e3d + a4f76e3 + 33c7531 + 2d59782 + 8152327 + e56ce9b + db9b18f + b88635a + a262823 + b79aef6 + c2284e4 + 70193eb + 96acf77 + 9675426 + 5f02411 + 0dafea7 + 15dc674 + 4a2447d + e6eb7f3 + e9499c5 + 272b15f + 11c7758 + 6f0e918 + 5f4980a + ecca95a + 88b5971 + ecb8d13 + 9de1c08 + 44aad17 + 13269e9 + 654cdb6 + dc708db + 380ffba + ff67e7f + fe2e025 + 95f0efa + 68cc4b3 + bf13b96 + 8870381 + 56480f4 + 1fa90d7 + 5c7fe1f + abe9bc1 + a33cacd + cdd7d9f + 6a261b1 + 5e594c4 + 01c1241 + 30d1dd2 + d4af079 + c9aa9b4 + 10f47ca + ef20fa1 + 2187ae2 + e7f3993 + db93d37 + aa57612 + 4af81d8 + 2f90998 + 3013404 + 69d83fe + f383ca9 + 1b26f48 + 054f09d + 0c86829 + f22d81a + e7ebffe + 72a7a54 + cc09223 + ab99f58 + 2c69e37 + b6ccfbc + b92a5da + 773a133 + 9ee28ff + 5865e20 + 63c7303 + 73371d0 + b96f402 + b36e36b + 60fa081 + a1d27a6 + 43e9240 + 9e59ae6 + be1ce44 + 5a6465d + 7e455b4 + 83d837e + 28bc01e + 215be48 + efcc8e0 + 5192ae6 + 7e1ba0f + dec8ccf + 94afc0f + 8c3ea5f + d680762 + 9092473 + 041fc63 + ea6499d + 1f59300 + a75142b + f592cc2 + f523aef + 2d12221 + 34ad758 + 23cc229 + 1fa15a0 commit 618d318
Show file tree
Hide file tree
Showing 13 changed files with 144 additions and 472 deletions.
144 changes: 128 additions & 16 deletions src/Filter/NumberFormat.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,127 @@

namespace Zend\I18n\Filter;

use NumberFormatter;
use Traversable;
use Zend\I18n\Exception;
use Zend\Stdlib\ErrorHandler;

class NumberFormat extends NumberParse
class NumberFormat extends AbstractLocale
{
protected $options = array(
'locale' => null,
'style' => NumberFormatter::DEFAULT_STYLE,
'type' => NumberFormatter::TYPE_DOUBLE
);

/**
* @var NumberFormatter
*/
protected $formatter = null;

/**
* @param array|Traversable|string|null $localeOrOptions
* @param int $style
* @param int $type
*/
public function __construct(
$localeOrOptions = null,
$style = NumberFormatter::DEFAULT_STYLE,
$type = NumberFormatter::TYPE_DOUBLE)
{
parent::__construct();
if ($localeOrOptions !== null) {
if ($localeOrOptions instanceof Traversable) {
$localeOrOptions = iterator_to_array($localeOrOptions);
}

if (!is_array($localeOrOptions)) {
$this->setLocale($localeOrOptions);
$this->setStyle($style);
$this->setType($type);
} else {
$this->setOptions($localeOrOptions);
}
}
}

/**
* @param string|null $locale
* @return NumberFormat
*/
public function setLocale($locale = null)
{
$this->options['locale'] = $locale;
$this->formatter = null;
return $this;
}

/**
* @param int $style
* @return NumberFormat
*/
public function setStyle($style)
{
$this->options['style'] = (int) $style;
$this->formatter = null;
return $this;
}

/**
* @return int
*/
public function getStyle()
{
return $this->options['style'];
}

/**
* @param int $type
* @return NumberFormat
*/
public function setType($type)
{
$this->options['type'] = (int) $type;
return $this;
}

/**
* @return int
*/
public function getType()
{
return $this->options['type'];
}

/**
* @param NumberFormatter $formatter
* @return NumberFormat
*/
public function setFormatter(NumberFormatter $formatter)
{
$this->formatter = $formatter;
return $this;
}

/**
* @return NumberFormatter
* @throws Exception\RuntimeException
*/
public function getFormatter()
{
if ($this->formatter === null) {
$formatter = NumberFormatter::create($this->getLocale(), $this->getStyle());
if (!$formatter) {
throw new Exception\RuntimeException(
'Can not create NumberFormatter instance; ' . intl_get_error_message()
);
}

$this->formatter = $formatter;
}

return $this->formatter;
}

/**
* Defined by Zend\Filter\FilterInterface
Expand All @@ -24,28 +140,24 @@ class NumberFormat extends NumberParse
*/
public function filter($value)
{
if (!is_int($value)
&& !is_float($value)) {

$result = parent::filter($value);
$formatter = $this->getFormatter();
$type = $this->getType();

if (is_int($value) || is_float($value)) {
ErrorHandler::start();
$result = $formatter->format($value, $type);
ErrorHandler::stop();
} else {

$value = str_replace(array("\xC2\xA0", ' '), '', $value);
ErrorHandler::start();

$result = $this->getFormatter()->format(
$value,
$this->getType()
);

$result = $formatter->parse($value, $type);
ErrorHandler::stop();

}

if (false !== $result) {
return str_replace("\xC2\xA0", ' ', $result);
if ($result === false) {
return $value;
}

return $value;
return str_replace("\xC2\xA0", ' ', $result);
}
}
163 changes: 0 additions & 163 deletions src/Filter/NumberParse.php

This file was deleted.

Loading

0 comments on commit 618d318

Please sign in to comment.