From c62a5e8d4e66e8ee2cec7d453663904594458c76 Mon Sep 17 00:00:00 2001 From: BastianHofmann Date: Wed, 5 Mar 2014 11:21:21 +0100 Subject: [PATCH] DRY underscored and dasherize methods --- src/Stringy.php | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/Stringy.php b/src/Stringy.php index 3122c6c..ce2abec 100644 --- a/src/Stringy.php +++ b/src/Stringy.php @@ -262,17 +262,7 @@ class Stringy implements \Countable, \IteratorAggregate, \ArrayAccess */ public function dasherize() { - // Save current regex encoding so we can reset it after - $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); + return $this->slug('-'); } /** @@ -284,13 +274,24 @@ class Stringy implements \Countable, \IteratorAggregate, \ArrayAccess * @return Stringy Object with an underscored $str */ 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 $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_ereg_replace('\B([A-Z])', $seperator .'\1', trim($this->str)); + $str = mb_ereg_replace('[-_\s]+', $seperator, $str); $str = mb_strtolower($str, $this->encoding); mb_regex_encoding($regexEncoding);