diff --git a/README.md b/README.md
index 2d19435..0d45865 100644
--- a/README.md
+++ b/README.md
@@ -10,23 +10,40 @@
[packagist]: https://packagist.org/packages/joshtronic/php-loremipsum
[gittip]: https://www.gittip.com/joshtronic/
-Lorem ipsum generator in PHP without dependencies. Compatible with PHP 5.3+ as well as HHVM.
+Lorem ipsum generator in PHP without dependencies. Compatible with PHP 5.3+ as
+well as HHVM.
## Origins
-Once upon a time, I was attempting to find a lorem ipsum generator over on [Packagist](https://packagist.org/search/?q=lorem%20ipsum). I was presented with many options, and some of those options were good. Unfortunately, the bulk of those options depended on Symphony or the Zend Framework. This wouldn’t have been a big deal but under the circumstances, I wanted something that was not tightly coupled to these frameworks because I wanted to use the generator in my _own_ framework.
+Once upon a time, I was attempting to find a lorem ipsum generator over on
+[Packagist](https://packagist.org/search/?q=lorem%20ipsum). I was presented
+with many options, and some of those options were good. Unfortunately, the
+bulk of those options depended on Symphony or the Zend Framework. This
+wouldn’t have been a big deal but under the circumstances, I wanted something
+that was not tightly coupled to these frameworks because I wanted to use the
+generator in my _own_ framework.
-I had decided to use [badcow/lorem-ipsum](https://packagist.org/packages/badcow/lorem-ipsum) because it did not have any dependencies nor did it rely on any external APIs. As I started to use the library, I found that I was going to have to fight with it to get it to do what I wanted. After digging through the code, I realized that I was going to end up gutting most of it to bend it to my will. I know when you overhaul someone’s code the liklihood of them accepting a pull request goes down dramatically, hence building this library while taking cues from it’s predecessor.
+I had decided to use
+[badcow/lorem-ipsum](https://packagist.org/packages/badcow/lorem-ipsum)
+because it did not have any dependencies nor did it rely on any external APIs.
+As I started to use the library, I found that I was going to have to fight
+with it to get it to do what I wanted. After digging through the code, I
+realized that I was going to end up gutting most of it to bend it to my will.
+I know when you overhaul someone’s code the liklihood of them accepting a pull
+request goes down dramatically, hence building this library while taking cues
+from it’s predecessor.
-Also, the aforementioned package had a bunch of “setter” and “getter” methods that were grossing me out :P
+Also, the aforementioned package had a bunch of “setter” and “getter” methods
+that were grossing me out :P
## Installation
-The preferred installation method is via `composer`. First add the following to your `composer.json`
+The preferred installation method is via `composer`. First add the following
+to your `composer.json`
```json
"require": {
- "joshtronic/php-loremipsum": "dev-master"
+ "joshtronic/php-loremipsum": "dev-master"
}
```
@@ -64,7 +81,8 @@ echo '5 paragraphs: ' . $lipsum->paragraphs(5);
### Wrapping text with HTML tags
-If you would like to wrap the generated text with a tag, pass it as the second parameter:
+If you would like to wrap the generated text with a tag, pass it as the second
+parameter:
```php
echo $lipsum->paragraphs(3, 'p');
@@ -77,7 +95,7 @@ Multiple tags can also be specified:
```php
echo $lipsum->sentences(3, ['article', 'p']);
-// Generptes: ...
...
...
+// Generates: ...
...
...
```
And you can back reference using `$1`:
@@ -106,10 +124,16 @@ print_r($lipsum->wordsArray(5), 'li');
## Assumptions
-Instead of having an option as to whether or not a string should start the generated output with “Lorem ipsum dolor sit amet, consectetur adipiscing elit.” a few assumptions are baked in. The first string generated will always start with the traditional “Lorem ipsum…”. Subsequent strings may contain those words but will not explicitly start with them.
+Instead of having an option as to whether or not a string should start the
+generated output with “Lorem ipsum dolor sit amet, consectetur adipiscing
+elit.” a few assumptions are baked in. The first string generated will always
+start with the traditional “Lorem ipsum…”. Subsequent strings may contain
+those words but will not explicitly start with them.
## Contributing
-Suggestions and bug reports are always welcome, but karma points are earned for pull requests.
+Suggestions and bug reports are always welcome, but karma points are earned
+for pull requests.
-Unit tests are required for all contributions. You can run the test suite from the `tests` directory simply by running `phpunit .`
+Unit tests are required for all contributions. You can run the test suite
+from the `tests` directory simply by running `phpunit .`
diff --git a/src/LoremIpsum.php b/src/LoremIpsum.php
index 4eb98e8..ab32324 100644
--- a/src/LoremIpsum.php
+++ b/src/LoremIpsum.php
@@ -18,395 +18,394 @@ namespace joshtronic;
class LoremIpsum
{
- /**
- * First
- *
- * Whether or not we should be starting the string with "Lorem ipsum..."
- *
- * @access private
- * @var boolean
- */
- private $first = true;
+ /**
+ * First
+ *
+ * Whether or not we should be starting the string with "Lorem ipsum..."
+ *
+ * @access private
+ * @var boolean
+ */
+ private $first = true;
- /**
- * Words
- *
- * A lorem ipsum vocabulary of sorts. Not a complete list as I'm unsure if
- * a complete list exists and if so, where to get it.
- *
- * @access private
- * @var array
- */
- public $words = array(
- // Lorem ipsum...
- 'lorem', 'ipsum', 'dolor', 'sit',
- 'amet', 'consectetur', 'adipiscing', 'elit',
- // The rest of the vocabulary
- 'a', 'ac', 'accumsan', 'ad',
- 'aenean', 'aliquam', 'aliquet', 'ante',
- 'aptent', 'arcu', 'at', 'auctor',
- 'augue', 'bibendum', 'blandit', 'class',
- 'commodo', 'condimentum', 'congue', 'consequat',
- 'conubia', 'convallis', 'cras', 'cubilia',
- 'cum', 'curabitur', 'curae', 'cursus',
- 'dapibus', 'diam', 'dictum', 'dictumst',
- 'dignissim', 'dis', 'donec', 'dui',
- 'duis', 'egestas', 'eget', 'eleifend',
- 'elementum', 'enim', 'erat', 'eros',
- 'est', 'et', 'etiam', 'eu',
- 'euismod', 'facilisi', 'facilisis', 'fames',
- 'faucibus', 'felis', 'fermentum', 'feugiat',
- 'fringilla', 'fusce', 'gravida', 'habitant',
- 'habitasse', 'hac', 'hendrerit', 'himenaeos',
- 'iaculis', 'id', 'imperdiet', 'in',
- 'inceptos', 'integer', 'interdum', 'justo',
- 'lacinia', 'lacus', 'laoreet', 'lectus',
- 'leo', 'libero', 'ligula', 'litora',
- 'lobortis', 'luctus', 'maecenas', 'magna',
- 'magnis', 'malesuada', 'massa', 'mattis',
- 'mauris', 'metus', 'mi', 'molestie',
- 'mollis', 'montes', 'morbi', 'mus',
- 'nam', 'nascetur', 'natoque', 'nec',
- 'neque', 'netus', 'nibh', 'nisi',
- 'nisl', 'non', 'nostra', 'nulla',
- 'nullam', 'nunc', 'odio', 'orci',
- 'ornare', 'parturient', 'pellentesque', 'penatibus',
- 'per', 'pharetra', 'phasellus', 'placerat',
- 'platea', 'porta', 'porttitor', 'posuere',
- 'potenti', 'praesent', 'pretium', 'primis',
- 'proin', 'pulvinar', 'purus', 'quam',
- 'quis', 'quisque', 'rhoncus', 'ridiculus',
- 'risus', 'rutrum', 'sagittis', 'sapien',
- 'scelerisque', 'sed', 'sem', 'semper',
- 'senectus', 'sociis', 'sociosqu', 'sodales',
- 'sollicitudin', 'suscipit', 'suspendisse', 'taciti',
- 'tellus', 'tempor', 'tempus', 'tincidunt',
- 'torquent', 'tortor', 'tristique', 'turpis',
- 'ullamcorper', 'ultrices', 'ultricies', 'urna',
- 'ut', 'varius', 'vehicula', 'vel',
- 'velit', 'venenatis', 'vestibulum', 'vitae',
- 'vivamus', 'viverra', 'volutpat', 'vulputate',
- );
+ /**
+ * Words
+ *
+ * A lorem ipsum vocabulary of sorts. Not a complete list as I'm unsure if
+ * a complete list exists and if so, where to get it.
+ *
+ * @access private
+ * @var array
+ */
+ public $words = array(
+ // Lorem ipsum...
+ 'lorem', 'ipsum', 'dolor', 'sit',
+ 'amet', 'consectetur', 'adipiscing', 'elit',
+ // The rest of the vocabulary
+ 'a', 'ac', 'accumsan', 'ad',
+ 'aenean', 'aliquam', 'aliquet', 'ante',
+ 'aptent', 'arcu', 'at', 'auctor',
+ 'augue', 'bibendum', 'blandit', 'class',
+ 'commodo', 'condimentum', 'congue', 'consequat',
+ 'conubia', 'convallis', 'cras', 'cubilia',
+ 'cum', 'curabitur', 'curae', 'cursus',
+ 'dapibus', 'diam', 'dictum', 'dictumst',
+ 'dignissim', 'dis', 'donec', 'dui',
+ 'duis', 'egestas', 'eget', 'eleifend',
+ 'elementum', 'enim', 'erat', 'eros',
+ 'est', 'et', 'etiam', 'eu',
+ 'euismod', 'facilisi', 'facilisis', 'fames',
+ 'faucibus', 'felis', 'fermentum', 'feugiat',
+ 'fringilla', 'fusce', 'gravida', 'habitant',
+ 'habitasse', 'hac', 'hendrerit', 'himenaeos',
+ 'iaculis', 'id', 'imperdiet', 'in',
+ 'inceptos', 'integer', 'interdum', 'justo',
+ 'lacinia', 'lacus', 'laoreet', 'lectus',
+ 'leo', 'libero', 'ligula', 'litora',
+ 'lobortis', 'luctus', 'maecenas', 'magna',
+ 'magnis', 'malesuada', 'massa', 'mattis',
+ 'mauris', 'metus', 'mi', 'molestie',
+ 'mollis', 'montes', 'morbi', 'mus',
+ 'nam', 'nascetur', 'natoque', 'nec',
+ 'neque', 'netus', 'nibh', 'nisi',
+ 'nisl', 'non', 'nostra', 'nulla',
+ 'nullam', 'nunc', 'odio', 'orci',
+ 'ornare', 'parturient', 'pellentesque', 'penatibus',
+ 'per', 'pharetra', 'phasellus', 'placerat',
+ 'platea', 'porta', 'porttitor', 'posuere',
+ 'potenti', 'praesent', 'pretium', 'primis',
+ 'proin', 'pulvinar', 'purus', 'quam',
+ 'quis', 'quisque', 'rhoncus', 'ridiculus',
+ 'risus', 'rutrum', 'sagittis', 'sapien',
+ 'scelerisque', 'sed', 'sem', 'semper',
+ 'senectus', 'sociis', 'sociosqu', 'sodales',
+ 'sollicitudin', 'suscipit', 'suspendisse', 'taciti',
+ 'tellus', 'tempor', 'tempus', 'tincidunt',
+ 'torquent', 'tortor', 'tristique', 'turpis',
+ 'ullamcorper', 'ultrices', 'ultricies', 'urna',
+ 'ut', 'varius', 'vehicula', 'vel',
+ 'velit', 'venenatis', 'vestibulum', 'vitae',
+ 'vivamus', 'viverra', 'volutpat', 'vulputate',
+ );
- /**
- * Word
- *
- * Generates a single word of lorem ipsum.
- *
- * @access public
- * @param mixed $tags string or array of HTML tags to wrap output with
- * @return string generated lorem ipsum word
- */
- public function word($tags = false)
- {
- return $this->words(1, $tags);
- }
+ /**
+ * Word
+ *
+ * Generates a single word of lorem ipsum.
+ *
+ * @access public
+ * @param mixed $tags string or array of HTML tags to wrap output with
+ * @return string generated lorem ipsum word
+ */
+ public function word($tags = false)
+ {
+ return $this->words(1, $tags);
+ }
- /**
- * Words Array
- *
- * Generates an array of lorem ipsum words.
- *
- * @access public
- * @param integer $count how many words to generate
- * @param mixed $tags string or array of HTML tags to wrap output with
- * @return array generated lorem ipsum words
- */
- public function wordsArray($count = 1, $tags = false)
- {
- return $this->words($count, $tags, true);
- }
+ /**
+ * Words Array
+ *
+ * Generates an array of lorem ipsum words.
+ *
+ * @access public
+ * @param integer $count how many words to generate
+ * @param mixed $tags string or array of HTML tags to wrap output with
+ * @return array generated lorem ipsum words
+ */
+ public function wordsArray($count = 1, $tags = false)
+ {
+ return $this->words($count, $tags, true);
+ }
- /**
- * Words
- *
- * Generates words of lorem ipsum.
- *
- * @access public
- * @param integer $count how many words to generate
- * @param mixed $tags string or array of HTML tags to wrap output with
- * @param boolean $array whether an array or a string should be returned
- * @return mixed string or array of generated lorem ipsum words
- */
- public function words($count = 1, $tags = false, $array = false)
- {
- $words = array();
- $word_count = 0;
+ /**
+ * Words
+ *
+ * Generates words of lorem ipsum.
+ *
+ * @access public
+ * @param integer $count how many words to generate
+ * @param mixed $tags string or array of HTML tags to wrap output with
+ * @param boolean $array whether an array or a string should be returned
+ * @return mixed string or array of generated lorem ipsum words
+ */
+ public function words($count = 1, $tags = false, $array = false)
+ {
+ $words = array();
+ $word_count = 0;
- // Shuffles and appends the word list to compensate for count
- // arguments that exceed the size of our vocabulary list
- while ($word_count < $count)
- {
- $shuffle = true;
+ // Shuffles and appends the word list to compensate for count
+ // arguments that exceed the size of our vocabulary list
+ while ($word_count < $count)
+ {
+ $shuffle = true;
- while ($shuffle)
- {
- $this->shuffle();
+ while ($shuffle)
+ {
+ $this->shuffle();
- // Checks that the last word of the list and the first word of
- // the list that's about to be appended are not the same
- if (!$word_count || $words[$word_count - 1] != $this->words[0])
- {
- $words = array_merge($words, $this->words);
- $word_count = count($words);
- $shuffle = false;
- }
- }
- }
+ // Checks that the last word of the list and the first word of
+ // the list that's about to be appended are not the same
+ if (!$word_count || $words[$word_count - 1] != $this->words[0])
+ {
+ $words = array_merge($words, $this->words);
+ $word_count = count($words);
+ $shuffle = false;
+ }
+ }
+ }
- $words = array_slice($words, 0, $count);
+ $words = array_slice($words, 0, $count);
- return $this->output($words, $tags, $array);
- }
+ return $this->output($words, $tags, $array);
+ }
- /**
- * Sentence
- *
- * Generates a full sentence of lorem ipsum.
- *
- * @access public
- * @param mixed $tags string or array of HTML tags to wrap output with
- * @return string generated lorem ipsum sentence
- */
- public function sentence($tags = false)
- {
- return $this->sentences(1, $tags);
- }
+ /**
+ * Sentence
+ *
+ * Generates a full sentence of lorem ipsum.
+ *
+ * @access public
+ * @param mixed $tags string or array of HTML tags to wrap output with
+ * @return string generated lorem ipsum sentence
+ */
+ public function sentence($tags = false)
+ {
+ return $this->sentences(1, $tags);
+ }
- /**
- * Sentences Array
- *
- * Generates an array of lorem ipsum sentences.
- *
- * @access public
- * @param integer $count how many sentences to generate
- * @param mixed $tags string or array of HTML tags to wrap output with
- * @return array generated lorem ipsum sentences
- */
- public function sentencesArray($count = 1, $tags = false)
- {
- return $this->sentences($count, $tags, true);
- }
+ /**
+ * Sentences Array
+ *
+ * Generates an array of lorem ipsum sentences.
+ *
+ * @access public
+ * @param integer $count how many sentences to generate
+ * @param mixed $tags string or array of HTML tags to wrap output with
+ * @return array generated lorem ipsum sentences
+ */
+ public function sentencesArray($count = 1, $tags = false)
+ {
+ return $this->sentences($count, $tags, true);
+ }
- /**
- * Sentences
- *
- * Generates sentences of lorem ipsum.
- *
- * @access public
- * @param integer $count how many sentences to generate
- * @param mixed $tags string or array of HTML tags to wrap output with
- * @param boolean $array whether an array or a string should be returned
- * @return mixed string or array of generated lorem ipsum sentences
- */
- public function sentences($count = 1, $tags = false, $array = false)
- {
- $sentences = array();
+ /**
+ * Sentences
+ *
+ * Generates sentences of lorem ipsum.
+ *
+ * @access public
+ * @param integer $count how many sentences to generate
+ * @param mixed $tags string or array of HTML tags to wrap output with
+ * @param boolean $array whether an array or a string should be returned
+ * @return mixed string or array of generated lorem ipsum sentences
+ */
+ public function sentences($count = 1, $tags = false, $array = false)
+ {
+ $sentences = array();
- for ($i = 0; $i < $count; $i++)
- {
- $sentences[] = $this->wordsArray($this->gauss(24.46, 5.08));
- }
+ for ($i = 0; $i < $count; $i++)
+ {
+ $sentences[] = $this->wordsArray($this->gauss(24.46, 5.08));
+ }
- $this->punctuate($sentences);
+ $this->punctuate($sentences);
- return $this->output($sentences, $tags, $array);
- }
+ return $this->output($sentences, $tags, $array);
+ }
- /**
- * Paragraph
- *
- * Generates a full paragraph of lorem ipsum.
- *
- * @access public
- * @param mixed $tags string or array of HTML tags to wrap output with
- * @return string generated lorem ipsum paragraph
- */
- public function paragraph($tags = false)
- {
- return $this->paragraphs(1, $tags);
- }
+ /**
+ * Paragraph
+ *
+ * Generates a full paragraph of lorem ipsum.
+ *
+ * @access public
+ * @param mixed $tags string or array of HTML tags to wrap output with
+ * @return string generated lorem ipsum paragraph
+ */
+ public function paragraph($tags = false)
+ {
+ return $this->paragraphs(1, $tags);
+ }
- /**
- * Paragraph Array
- *
- * Generates an array of lorem ipsum paragraphs.
- *
- * @access public
- * @param integer $count how many paragraphs to generate
- * @param mixed $tags string or array of HTML tags to wrap output with
- * @return array generated lorem ipsum paragraphs
- */
- public function paragraphsArray($count = 1, $tags = false)
- {
- return $this->paragraphs($count, $tags, true);
- }
+ /**
+ * Paragraph Array
+ *
+ * Generates an array of lorem ipsum paragraphs.
+ *
+ * @access public
+ * @param integer $count how many paragraphs to generate
+ * @param mixed $tags string or array of HTML tags to wrap output with
+ * @return array generated lorem ipsum paragraphs
+ */
+ public function paragraphsArray($count = 1, $tags = false)
+ {
+ return $this->paragraphs($count, $tags, true);
+ }
- /**
- * Paragraphss
- *
- * Generates paragraphs of lorem ipsum.
- *
- * @access public
- * @param integer $count how many paragraphs to generate
- * @param mixed $tags string or array of HTML tags to wrap output with
- * @param boolean $array whether an array or a string should be returned
- * @return mixed string or array of generated lorem ipsum paragraphs
- */
- public function paragraphs($count = 1, $tags = false, $array = false)
- {
- $paragraphs = array();
+ /**
+ * Paragraphss
+ *
+ * Generates paragraphs of lorem ipsum.
+ *
+ * @access public
+ * @param integer $count how many paragraphs to generate
+ * @param mixed $tags string or array of HTML tags to wrap output with
+ * @param boolean $array whether an array or a string should be returned
+ * @return mixed string or array of generated lorem ipsum paragraphs
+ */
+ public function paragraphs($count = 1, $tags = false, $array = false)
+ {
+ $paragraphs = array();
- for ($i = 0; $i < $count; $i++)
- {
- $paragraphs[] = $this->sentences($this->gauss(5.8, 1.93));
- }
+ for ($i = 0; $i < $count; $i++)
+ {
+ $paragraphs[] = $this->sentences($this->gauss(5.8, 1.93));
+ }
- return $this->output($paragraphs, $tags, $array, "\n\n");
- }
+ return $this->output($paragraphs, $tags, $array, "\n\n");
+ }
- /**
- * Gaussian Distribution
- *
- * This is some smart kid stuff. I went ahead and combined the N(0,1) logic
- * with the N(m,s) logic into this single function. Used to calculate the
- * number of words in a sentence, the number of sentences in a paragraph
- * and the distribution of commas in a sentence.
- *
- * @access private
- * @param double $mean average value
- * @param double $std_dev stadnard deviation
- * @return double calculated distribution
- */
- private function gauss($mean, $std_dev)
- {
- $x = mt_rand() / mt_getrandmax();
- $y = mt_rand() / mt_getrandmax();
- $z = sqrt(-2 * log($x)) * cos(2 * pi() * $y);
+ /**
+ * Gaussian Distribution
+ *
+ * This is some smart kid stuff. I went ahead and combined the N(0,1) logic
+ * with the N(m,s) logic into this single function. Used to calculate the
+ * number of words in a sentence, the number of sentences in a paragraph
+ * and the distribution of commas in a sentence.
+ *
+ * @access private
+ * @param double $mean average value
+ * @param double $std_dev stadnard deviation
+ * @return double calculated distribution
+ */
+ private function gauss($mean, $std_dev)
+ {
+ $x = mt_rand() / mt_getrandmax();
+ $y = mt_rand() / mt_getrandmax();
+ $z = sqrt(-2 * log($x)) * cos(2 * pi() * $y);
- return $z * $std_dev + $mean;
- }
+ return $z * $std_dev + $mean;
+ }
- /**
- * Shuffle
- *
- * Shuffles the words, forcing "Lorem ipsum..." at the beginning if it is
- * the first time we are generating the text.
- *
- * @access private
- */
- private function shuffle()
- {
- if ($this->first)
- {
- $this->first = array_slice($this->words, 0, 8);
- $this->words = array_slice($this->words, 8);
+ /**
+ * Shuffle
+ *
+ * Shuffles the words, forcing "Lorem ipsum..." at the beginning if it is
+ * the first time we are generating the text.
+ *
+ * @access private
+ */
+ private function shuffle()
+ {
+ if ($this->first)
+ {
+ $this->first = array_slice($this->words, 0, 8);
+ $this->words = array_slice($this->words, 8);
- shuffle($this->words);
+ shuffle($this->words);
- $this->words = $this->first + $this->words;
+ $this->words = $this->first + $this->words;
- $this->first = false;
- }
- else
- {
- shuffle($this->words);
- }
- }
+ $this->first = false;
+ }
+ else
+ {
+ shuffle($this->words);
+ }
+ }
- /**
- * Punctuate
- *
- * Applies punctuation to a sentence. This includes a period at the end,
- * the injection of commas as well as capitalizing the first letter of the
- * first word of the sentence.
- *
- * @access private
- * @param array $sentences the sentences we would like to punctuate
- */
- private function punctuate(&$sentences)
- {
- foreach ($sentences as $key => $sentence)
- {
- $words = count($sentence);
+ /**
+ * Punctuate
+ *
+ * Applies punctuation to a sentence. This includes a period at the end,
+ * the injection of commas as well as capitalizing the first letter of the
+ * first word of the sentence.
+ *
+ * @access private
+ * @param array $sentences the sentences we would like to punctuate
+ */
+ private function punctuate(&$sentences)
+ {
+ foreach ($sentences as $key => $sentence)
+ {
+ $words = count($sentence);
- // Only worry about commas on sentences longer than 4 words
- if ($words > 4)
- {
- $mean = log($words, 6);
- $std_dev = $mean / 6;
- $commas = round($this->gauss($mean, $std_dev));
+ // Only worry about commas on sentences longer than 4 words
+ if ($words > 4)
+ {
+ $mean = log($words, 6);
+ $std_dev = $mean / 6;
+ $commas = round($this->gauss($mean, $std_dev));
- for ($i = 1; $i <= $commas; $i++)
- {
- $word = round($i * $words / ($commas + 1));
+ for ($i = 1; $i <= $commas; $i++)
+ {
+ $word = round($i * $words / ($commas + 1));
- if ($word < ($words - 1) && $word > 0)
- {
- $sentence[$word] .= ',';
- }
- }
- }
+ if ($word < ($words - 1) && $word > 0)
+ {
+ $sentence[$word] .= ',';
+ }
+ }
+ }
- $sentences[$key] = ucfirst(implode(' ', $sentence) . '.');
- }
- }
+ $sentences[$key] = ucfirst(implode(' ', $sentence) . '.');
+ }
+ }
- /**
- * Output
- *
- * Does the rest of the processing of the strings. This includes wrapping
- * the strings in HTML tags, handling transformations with the ability of
- * back referencing and determining if the passed array should be converted
- * into a string or not.
- *
- * @access private
- * @param array $strings an array of generated strings
- * @param mixed $tags string or array of HTML tags to wrap output with
- * @param boolean $array whether an array or a string should be returned
+ /**
+ * Output
+ *
+ * Does the rest of the processing of the strings. This includes wrapping
+ * the strings in HTML tags, handling transformations with the ability of
+ * back referencing and determining if the passed array should be converted
+ * into a string or not.
+ *
+ * @access private
+ * @param array $strings an array of generated strings
+ * @param mixed $tags string or array of HTML tags to wrap output with
+ * @param boolean $array whether an array or a string should be returned
* @param string $delimiter the string to use when calling implode()
- * @return mixed string or array of generated lorem ipsum text
- */
- private function output($strings, $tags, $array, $delimiter = ' ')
- {
- if ($tags)
- {
- if (!is_array($tags))
- {
- $tags = array($tags);
- }
- else
- {
- // Flips the array so we can work from the inside out
- $tags = array_reverse($tags);
- }
+ * @return mixed string or array of generated lorem ipsum text
+ */
+ private function output($strings, $tags, $array, $delimiter = ' ')
+ {
+ if ($tags)
+ {
+ if (!is_array($tags))
+ {
+ $tags = array($tags);
+ }
+ else
+ {
+ // Flips the array so we can work from the inside out
+ $tags = array_reverse($tags);
+ }
- foreach ($strings as $key => $string)
- {
- foreach ($tags as $tag)
- {
- // Detects / applies back reference
- if ($tag[0] == '<')
- {
- $string = str_replace('$1', $string, $tag);
- }
- else
- {
- $string = sprintf('<%1$s>%2$s%1$s>', $tag, $string);
- }
+ foreach ($strings as $key => $string)
+ {
+ foreach ($tags as $tag)
+ {
+ // Detects / applies back reference
+ if ($tag[0] == '<')
+ {
+ $string = str_replace('$1', $string, $tag);
+ }
+ else
+ {
+ $string = sprintf('<%1$s>%2$s%1$s>', $tag, $string);
+ }
- $strings[$key] = $string;
- }
- }
- }
+ $strings[$key] = $string;
+ }
+ }
+ }
- if (!$array)
- {
- $strings = implode($delimiter, $strings);
- }
+ if (!$array)
+ {
+ $strings = implode($delimiter, $strings);
+ }
- return $strings;
- }
+ return $strings;
+ }
}
-?>
diff --git a/tests/LoremIpsumTest.php b/tests/LoremIpsumTest.php
index 36f78f5..e503bf4 100644
--- a/tests/LoremIpsumTest.php
+++ b/tests/LoremIpsumTest.php
@@ -4,125 +4,124 @@ require_once '../src/LoremIpsum.php';
class LoremIpsumTest extends PHPUnit_Framework_TestCase
{
- private $lipsum;
+ private $lipsum;
- public function setUp()
- {
- $this->lipsum = new joshtronic\LoremIpsum();
- }
+ public function setUp()
+ {
+ $this->lipsum = new joshtronic\LoremIpsum();
+ }
- public function testWord()
- {
- $this->assertRegExp('/^[a-z]+$/i', $this->lipsum->word());
- }
+ public function testWord()
+ {
+ $this->assertRegExp('/^[a-z]+$/i', $this->lipsum->word());
+ }
- public function testWords()
- {
- $this->assertRegExp(
- '/^[a-z]+ [a-z]+ [a-z]+$/i',
- $this->lipsum->words(3)
- );
- }
+ public function testWords()
+ {
+ $this->assertRegExp(
+ '/^[a-z]+ [a-z]+ [a-z]+$/i',
+ $this->lipsum->words(3)
+ );
+ }
- public function testWordsArray()
- {
- $words = $this->lipsum->wordsArray(3);
- $this->assertTrue(is_array($words));
- $this->assertCount(3, $words);
+ public function testWordsArray()
+ {
+ $words = $this->lipsum->wordsArray(3);
+ $this->assertTrue(is_array($words));
+ $this->assertCount(3, $words);
- foreach ($words as $word)
- {
- $this->assertRegExp('/^[a-z]+$/i', $word);
- }
- }
+ foreach ($words as $word)
+ {
+ $this->assertRegExp('/^[a-z]+$/i', $word);
+ }
+ }
- public function testWordsExceedingVocab()
- {
- $this->assertCount(500, $this->lipsum->wordsArray(500));
- }
+ public function testWordsExceedingVocab()
+ {
+ $this->assertCount(500, $this->lipsum->wordsArray(500));
+ }
- public function testSentence()
- {
- $this->assertRegExp('/^[a-z, ]+\.$/i', $this->lipsum->sentence());
- }
+ public function testSentence()
+ {
+ $this->assertRegExp('/^[a-z, ]+\.$/i', $this->lipsum->sentence());
+ }
- public function testSentences()
- {
- $this->assertRegExp('/^[a-z, ]+\. [a-z, ]+\. [a-z, ]+\.$/i', $this->lipsum->sentences(3));
- }
+ public function testSentences()
+ {
+ $this->assertRegExp('/^[a-z, ]+\. [a-z, ]+\. [a-z, ]+\.$/i', $this->lipsum->sentences(3));
+ }
- public function testSentencesArray()
- {
- $sentences = $this->lipsum->sentencesArray(3);
- $this->assertTrue(is_array($sentences));
- $this->assertCount(3, $sentences);
+ public function testSentencesArray()
+ {
+ $sentences = $this->lipsum->sentencesArray(3);
+ $this->assertTrue(is_array($sentences));
+ $this->assertCount(3, $sentences);
- foreach ($sentences as $sentence)
- {
- $this->assertRegExp('/^[a-z, ]+\.$/i', $sentence);
- }
- }
+ foreach ($sentences as $sentence)
+ {
+ $this->assertRegExp('/^[a-z, ]+\.$/i', $sentence);
+ }
+ }
- public function testParagraph()
- {
- $this->assertRegExp('/^([a-z, ]+\.)+$/i', $this->lipsum->paragraph());
- }
+ public function testParagraph()
+ {
+ $this->assertRegExp('/^([a-z, ]+\.)+$/i', $this->lipsum->paragraph());
+ }
- public function testParagraphs()
- {
- $this->assertRegExp(
- '/^([a-z, ]+\.)+\n\n([a-z, ]+\.)+\n\n([a-z, ]+\.)+$/i',
- $this->lipsum->paragraphs(3)
- );
- }
+ public function testParagraphs()
+ {
+ $this->assertRegExp(
+ '/^([a-z, ]+\.)+\n\n([a-z, ]+\.)+\n\n([a-z, ]+\.)+$/i',
+ $this->lipsum->paragraphs(3)
+ );
+ }
- public function testParagraphsArray()
- {
- $paragraphs = $this->lipsum->paragraphsArray(3);
- $this->assertTrue(is_array($paragraphs));
- $this->assertCount(3, $paragraphs);
+ public function testParagraphsArray()
+ {
+ $paragraphs = $this->lipsum->paragraphsArray(3);
+ $this->assertTrue(is_array($paragraphs));
+ $this->assertCount(3, $paragraphs);
- foreach ($paragraphs as $paragraph)
- {
- $this->assertRegExp('/^([a-z, ]+\.)+$/i', $paragraph);
- }
- }
+ foreach ($paragraphs as $paragraph)
+ {
+ $this->assertRegExp('/^([a-z, ]+\.)+$/i', $paragraph);
+ }
+ }
- public function testMarkupString()
- {
- $this->assertRegExp(
- '/^
[a-z]+<\/li>$/i',
- $this->lipsum->word('li')
- );
- }
+ public function testMarkupString()
+ {
+ $this->assertRegExp(
+ '/^[a-z]+<\/li>$/i',
+ $this->lipsum->word('li')
+ );
+ }
- public function testMarkupArray()
- {
- $this->assertRegExp(
- '/^