aboutsummaryrefslogtreecommitdiffhomepage
path: root/assets/php/vendor/nubs/random-name-generator/src/Vgng.php
diff options
context:
space:
mode:
Diffstat (limited to 'assets/php/vendor/nubs/random-name-generator/src/Vgng.php')
-rwxr-xr-xassets/php/vendor/nubs/random-name-generator/src/Vgng.php138
1 files changed, 0 insertions, 138 deletions
diff --git a/assets/php/vendor/nubs/random-name-generator/src/Vgng.php b/assets/php/vendor/nubs/random-name-generator/src/Vgng.php
deleted file mode 100755
index 2c43224..0000000
--- a/assets/php/vendor/nubs/random-name-generator/src/Vgng.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-namespace Nubs\RandomNameGenerator;
-
-use Cinam\Randomizer\Randomizer;
-
-/**
- * Defines a video game name generator based off of
- * https://github.com/nullpuppy/vgng which in turn is based off of
- * http://videogamena.me/vgng.js.
- */
-class Vgng extends AbstractGenerator implements Generator
-{
- /** @type array The definition of the potential names. */
- protected $_definitionSets;
-
- /** @type Cinam\Randomizer\Randomizer The random number generator. */
- protected $_randomizer;
-
- /**
- * Initializes the Video Game Name Generator from the default word list.
- *
- * @api
- * @param \Cinam\Randomizer\Randomizer $randomizer The random number generator.
- */
- public function __construct(Randomizer $randomizer = null)
- {
- $this->_randomizer = $randomizer;
- $this->_definitionSets = array_map(
- [$this, '_parseSection'],
- $this->_getSections($this->_getFileContents())
- );
- }
-
- /**
- * Gets a randomly generated video game name.
- *
- * @api
- * @return string A random video game name.
- */
- public function getName()
- {
- $similarWords = [];
- $words = [];
-
- foreach ($this->_definitionSets as $definitionSet) {
- $word = $this->_getUniqueWord($definitionSet, $similarWords);
- $words[] = $word['word'];
- $similarWords[] = $word['word'];
- $similarWords = array_merge($similarWords, $word['similarWords']);
- }
-
- return implode(' ', $words);
- }
-
- /**
- * Get a definition from the definitions that does not exist already.
- *
- * @param array $definitions The word list to pick from.
- * @param array $existingWords The already-chosen words to avoid.
- * @return array The definition of a previously unchosen word.
- */
- protected function _getUniqueWord(array $definitions, array $existingWords)
- {
- $definition = $this->_randomizer ? $this->_randomizer->getArrayValue($definitions) : $definitions[array_rand($definitions)];
-
- if (array_search($definition['word'], $existingWords) === false) {
- return $definition;
- }
-
- return $this->_getUniqueWord($definitions, $existingWords);
- }
-
- /**
- * Gets the file contents of the video_game_names.txt file.
- *
- * @return string The video_game_names.txt contents.
- */
- protected function _getFileContents()
- {
- return file_get_contents(__DIR__ . '/video_game_names.txt');
- }
-
- /**
- * Separates the contents into each of the word list sections.
- *
- * This builder operates by picking a random word from each of a consecutive
- * list of word lists. These separate lists are separated by a line
- * consisting of four hyphens in the file.
- *
- * @param string $contents The file contents.
- * @return array Each section split into its own string.
- */
- protected function _getSections($contents)
- {
- return array_map('trim', explode('----', $contents));
- }
-
- /**
- * Parses the given section into the final definitions.
- *
- * @param string $section The newline-separated list of words in a section.
- * @return array The parsed section into its final form.
- */
- protected function _parseSection($section)
- {
- return array_map(
- [$this, '_parseDefinition'],
- $this->_getDefinitionsFromSection($section)
- );
- }
-
- /**
- * Gets the separate definitions from the given section.
- *
- * @param string $section The newline-separated list of words in a section.
- * @return array Each word split out, but unparsed.
- */
- protected function _getDefinitionsFromSection($section)
- {
- return array_map('trim', explode("\n", $section));
- }
-
- /**
- * Parses a single definition into its component pieces.
- *
- * The format of a definition in a file is word[^similarWord|...].
- *
- * @param string $definition The definition.
- * @return array The formatted definition.
- */
- protected function _parseDefinition($definition)
- {
- $word = strtok($definition, '^');
- $similarWords = array_filter(explode('|', strtok('^')));
-
- return ['word' => $word, 'similarWords' => $similarWords];
- }
-}