1
0
mirror of https://github.com/danielstjules/Stringy.git synced 2025-08-12 16:24:00 +02:00

DRY underscored and dasherize methods

This commit is contained in:
BastianHofmann
2014-03-05 11:21:21 +01:00
parent 404909ffaa
commit c62a5e8d4e

View File

@@ -262,17 +262,7 @@ class Stringy implements \Countable, \IteratorAggregate, \ArrayAccess
*/ */
public function dasherize() public function dasherize()
{ {
// Save current regex encoding so we can reset it after return $this->slug('-');
$regexEncoding = mb_regex_encoding();
mb_regex_encoding($this->encoding);
$str = mb_ereg_replace('\B([A-Z])', '-\1', trim($this->str));
$str = mb_ereg_replace('[-_\s]+', '-', $str);
$str = mb_strtolower($str, $this->encoding);
mb_regex_encoding($regexEncoding);
return self::create($str, $this->encoding);
} }
/** /**
@@ -284,13 +274,24 @@ class Stringy implements \Countable, \IteratorAggregate, \ArrayAccess
* @return Stringy Object with an underscored $str * @return Stringy Object with an underscored $str
*/ */
public function underscored() public function underscored()
{
return $this->slug('_');
}
/**
* Returns a lowercase and trimmed string separated by a suplied
* seperator.
*
* @return Stringy Object with a dasherized $str
*/
protected function slug($seperator)
{ {
// Save current regex encoding so we can reset it after // Save current regex encoding so we can reset it after
$regexEncoding = mb_regex_encoding(); $regexEncoding = mb_regex_encoding();
mb_regex_encoding($this->encoding); mb_regex_encoding($this->encoding);
$str = mb_ereg_replace('\B([A-Z])', '_\1', trim($this->str)); $str = mb_ereg_replace('\B([A-Z])', $seperator .'\1', trim($this->str));
$str = mb_ereg_replace('[-_\s]+', '_', $str); $str = mb_ereg_replace('[-_\s]+', $seperator, $str);
$str = mb_strtolower($str, $this->encoding); $str = mb_strtolower($str, $this->encoding);
mb_regex_encoding($regexEncoding); mb_regex_encoding($regexEncoding);