Add a readable module name
This commit is contained in:
parent
20a6a011d9
commit
28696ce13f
4
bin/dmg
4
bin/dmg
|
@ -2,6 +2,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Opdavies\DrupalModuleGenerator\Command\GenerateDrupal7Command;
|
use Opdavies\DrupalModuleGenerator\Command\GenerateDrupal7Command;
|
||||||
|
use Opdavies\DrupalModuleGenerator\Service\ModuleNameConverter;
|
||||||
use Opdavies\DrupalModuleGenerator\Service\TestNameConverter;
|
use Opdavies\DrupalModuleGenerator\Service\TestNameConverter;
|
||||||
use Symfony\Component\Console\Application;
|
use Symfony\Component\Console\Application;
|
||||||
use Symfony\Component\Finder\Finder;
|
use Symfony\Component\Finder\Finder;
|
||||||
|
@ -11,10 +12,11 @@ require_once __DIR__.'/../vendor/autoload.php';
|
||||||
$app = new Application();
|
$app = new Application();
|
||||||
|
|
||||||
$finder = new Finder();
|
$finder = new Finder();
|
||||||
|
$moduleNameConverter = new ModuleNameConverter();
|
||||||
$testNameConverter = new TestNameConverter();
|
$testNameConverter = new TestNameConverter();
|
||||||
|
|
||||||
$app->addCommands([
|
$app->addCommands([
|
||||||
new GenerateDrupal7Command($finder, $testNameConverter),
|
new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$app->run();
|
$app->run();
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
namespace Opdavies\DrupalModuleGenerator\Command;
|
namespace Opdavies\DrupalModuleGenerator\Command;
|
||||||
|
|
||||||
use Opdavies\DrupalModuleGenerator\Exception\CannotCreateModuleException;
|
use Opdavies\DrupalModuleGenerator\Exception\CannotCreateModuleException;
|
||||||
|
use Opdavies\DrupalModuleGenerator\Service\ModuleNameConverter;
|
||||||
use Opdavies\DrupalModuleGenerator\Service\TestNameConverter;
|
use Opdavies\DrupalModuleGenerator\Service\TestNameConverter;
|
||||||
use Symfony\Component\Console\Command\Command;
|
use Symfony\Component\Console\Command\Command;
|
||||||
use Symfony\Component\Console\Input\InputArgument;
|
use Symfony\Component\Console\Input\InputArgument;
|
||||||
|
@ -17,6 +18,7 @@ use Tightenco\Collect\Support\Collection;
|
||||||
class GenerateDrupal7Command extends Command
|
class GenerateDrupal7Command extends Command
|
||||||
{
|
{
|
||||||
private $moduleName;
|
private $moduleName;
|
||||||
|
private $machineName;
|
||||||
private $testName;
|
private $testName;
|
||||||
|
|
||||||
/** @var Filesystem */
|
/** @var Filesystem */
|
||||||
|
@ -28,17 +30,22 @@ class GenerateDrupal7Command extends Command
|
||||||
/** @var SymfonyStyle $io */
|
/** @var SymfonyStyle $io */
|
||||||
private $io;
|
private $io;
|
||||||
|
|
||||||
|
/** @var ModuleNameConverter */
|
||||||
|
private $moduleNameConverter;
|
||||||
|
|
||||||
/** @var TestNameConverter */
|
/** @var TestNameConverter */
|
||||||
private $testNameConverter;
|
private $testNameConverter;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
Finder $finder,
|
Finder $finder,
|
||||||
|
ModuleNameConverter $moduleNameConverter,
|
||||||
TestNameConverter $testNameConverter,
|
TestNameConverter $testNameConverter,
|
||||||
string $name = null
|
string $name = null
|
||||||
) {
|
) {
|
||||||
parent::__construct($name);
|
parent::__construct($name);
|
||||||
|
|
||||||
$this->finder = $finder;
|
$this->finder = $finder;
|
||||||
|
$this->moduleNameConverter = $moduleNameConverter;
|
||||||
$this->testNameConverter = $testNameConverter;
|
$this->testNameConverter = $testNameConverter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,8 +71,9 @@ class GenerateDrupal7Command extends Command
|
||||||
{
|
{
|
||||||
$this->io = new SymfonyStyle($input, $output);
|
$this->io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
$this->moduleName = $input->getArgument('module-name');
|
$this->machineName = $input->getArgument('module-name');
|
||||||
$this->testName = $this->testNameConverter->__invoke($this->moduleName);
|
$this->moduleName = $this->moduleNameConverter->__invoke($this->machineName);
|
||||||
|
$this->testName = $this->testNameConverter->__invoke($this->machineName);
|
||||||
|
|
||||||
$this
|
$this
|
||||||
->ensureDirectoryDoesNotExist()
|
->ensureDirectoryDoesNotExist()
|
||||||
|
@ -80,7 +88,7 @@ class GenerateDrupal7Command extends Command
|
||||||
*/
|
*/
|
||||||
private function ensureDirectoryDoesNotExist()
|
private function ensureDirectoryDoesNotExist()
|
||||||
{
|
{
|
||||||
if (is_dir($this->moduleName)) {
|
if (is_dir($this->machineName)) {
|
||||||
throw CannotCreateModuleException::directoryAlreadyExists();
|
throw CannotCreateModuleException::directoryAlreadyExists();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +97,7 @@ class GenerateDrupal7Command extends Command
|
||||||
|
|
||||||
private function createModuleDirectory()
|
private function createModuleDirectory()
|
||||||
{
|
{
|
||||||
mkdir($this->moduleName);
|
mkdir($this->machineName);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
@ -101,10 +109,10 @@ class GenerateDrupal7Command extends Command
|
||||||
|
|
||||||
/** @var SplFileInfo $file */
|
/** @var SplFileInfo $file */
|
||||||
foreach ($this->finder->in('fixtures/drupal7_module')->files() as $file) {
|
foreach ($this->finder->in('fixtures/drupal7_module')->files() as $file) {
|
||||||
$filename = "{$this->moduleName}.{$file->getExtension()}";
|
$filename = "{$this->machineName}.{$file->getExtension()}";
|
||||||
|
|
||||||
if ($file->getRelativePath()) {
|
if ($file->getRelativePath()) {
|
||||||
mkdir("{$this->moduleName}/{$file->getRelativePath()}", 0777, $recursive = true);
|
mkdir("{$this->machineName}/{$file->getRelativePath()}", 0777, $recursive = true);
|
||||||
|
|
||||||
$filename = "{$this->testName}.php";
|
$filename = "{$this->testName}.php";
|
||||||
$filename = "{$file->getRelativePath()}/{$filename}";
|
$filename = "{$file->getRelativePath()}/{$filename}";
|
||||||
|
@ -112,7 +120,7 @@ class GenerateDrupal7Command extends Command
|
||||||
|
|
||||||
$contents = $this->updateFileContents($file->getContents());
|
$contents = $this->updateFileContents($file->getContents());
|
||||||
|
|
||||||
file_put_contents("{$this->moduleName}/{$filename}", $contents);
|
file_put_contents("{$this->machineName}/{$filename}", $contents);
|
||||||
|
|
||||||
$createdFiles->push($filename);
|
$createdFiles->push($filename);
|
||||||
}
|
}
|
||||||
|
|
17
src/Service/ModuleNameConverter.php
Normal file
17
src/Service/ModuleNameConverter.php
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Opdavies\DrupalModuleGenerator\Service;
|
||||||
|
|
||||||
|
class ModuleNameConverter
|
||||||
|
{
|
||||||
|
public function __invoke(string $moduleName)
|
||||||
|
{
|
||||||
|
$parts = explode('_', $moduleName);
|
||||||
|
|
||||||
|
$parts = array_map(function ($part) {
|
||||||
|
return ucfirst($part);
|
||||||
|
}, $parts);
|
||||||
|
|
||||||
|
return implode(' ', $parts);
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ namespace Opdavies\Tests\DrupalModuleGenerator\Command;
|
||||||
|
|
||||||
use Opdavies\DrupalModuleGenerator\Command\GenerateDrupal7Command;
|
use Opdavies\DrupalModuleGenerator\Command\GenerateDrupal7Command;
|
||||||
use Opdavies\DrupalModuleGenerator\Exception\CannotCreateModuleException;
|
use Opdavies\DrupalModuleGenerator\Exception\CannotCreateModuleException;
|
||||||
|
use Opdavies\DrupalModuleGenerator\Service\ModuleNameConverter;
|
||||||
use Opdavies\DrupalModuleGenerator\Service\TestNameConverter;
|
use Opdavies\DrupalModuleGenerator\Service\TestNameConverter;
|
||||||
use Symfony\Component\Console\Tester\CommandTester;
|
use Symfony\Component\Console\Tester\CommandTester;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
|
@ -24,8 +25,9 @@ class GenerateDrupal7ModuleCommandTest extends TestCase
|
||||||
$this->expectExceptionObject(CannotCreateModuleException::directoryAlreadyExists());
|
$this->expectExceptionObject(CannotCreateModuleException::directoryAlreadyExists());
|
||||||
|
|
||||||
$finder = new Finder();
|
$finder = new Finder();
|
||||||
|
$moduleNameConverter = new ModuleNameConverter();
|
||||||
$testNameConverter = new TestNameConverter();
|
$testNameConverter = new TestNameConverter();
|
||||||
$command = new GenerateDrupal7Command($finder, $testNameConverter);
|
$command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter);
|
||||||
|
|
||||||
$commandTester = new CommandTester($command);
|
$commandTester = new CommandTester($command);
|
||||||
$commandTester->execute([
|
$commandTester->execute([
|
||||||
|
@ -37,8 +39,9 @@ class GenerateDrupal7ModuleCommandTest extends TestCase
|
||||||
public function it_creates_a_new_module_directory()
|
public function it_creates_a_new_module_directory()
|
||||||
{
|
{
|
||||||
$finder = new Finder();
|
$finder = new Finder();
|
||||||
|
$moduleNameConverter = new ModuleNameConverter();
|
||||||
$testNameConverter = new TestNameConverter();
|
$testNameConverter = new TestNameConverter();
|
||||||
$command = new GenerateDrupal7Command($finder, $testNameConverter);
|
$command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter);
|
||||||
|
|
||||||
$commandTester = new CommandTester($command);
|
$commandTester = new CommandTester($command);
|
||||||
$commandTester->execute([
|
$commandTester->execute([
|
||||||
|
@ -52,8 +55,9 @@ class GenerateDrupal7ModuleCommandTest extends TestCase
|
||||||
public function it_generates_an_info_file()
|
public function it_generates_an_info_file()
|
||||||
{
|
{
|
||||||
$finder = new Finder();
|
$finder = new Finder();
|
||||||
|
$moduleNameConverter = new ModuleNameConverter();
|
||||||
$testNameConverter = new TestNameConverter();
|
$testNameConverter = new TestNameConverter();
|
||||||
$command = new GenerateDrupal7Command($finder, $testNameConverter);
|
$command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter);
|
||||||
|
|
||||||
$commandTester = new CommandTester($command);
|
$commandTester = new CommandTester($command);
|
||||||
$commandTester->execute([
|
$commandTester->execute([
|
||||||
|
@ -64,16 +68,17 @@ class GenerateDrupal7ModuleCommandTest extends TestCase
|
||||||
|
|
||||||
$contents = file_get_contents('test_module/test_module.info');
|
$contents = file_get_contents('test_module/test_module.info');
|
||||||
|
|
||||||
$this->assertStringContainsString('name = test_module', $contents);
|
$this->assertStringContainsString('name = Test Module', $contents);
|
||||||
$this->assertStringContainsString('description = The description for test_module.', $contents);
|
$this->assertStringContainsString('description = The description for Test Module.', $contents);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
public function it_generates_a_module_file()
|
public function it_generates_a_module_file()
|
||||||
{
|
{
|
||||||
$finder = new Finder();
|
$finder = new Finder();
|
||||||
|
$moduleNameConverter = new ModuleNameConverter();
|
||||||
$testNameConverter = new TestNameConverter();
|
$testNameConverter = new TestNameConverter();
|
||||||
$command = new GenerateDrupal7Command($finder, $testNameConverter);
|
$command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter);
|
||||||
|
|
||||||
$commandTester = new CommandTester($command);
|
$commandTester = new CommandTester($command);
|
||||||
$commandTester->execute([
|
$commandTester->execute([
|
||||||
|
@ -84,15 +89,16 @@ class GenerateDrupal7ModuleCommandTest extends TestCase
|
||||||
|
|
||||||
$contents = file_get_contents('test_module/test_module.module');
|
$contents = file_get_contents('test_module/test_module.module');
|
||||||
|
|
||||||
$this->assertStringContainsString('The main module file for test_module.', $contents);
|
$this->assertStringContainsString('The main module file for Test Module.', $contents);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
public function it_generates_a_test_case()
|
public function it_generates_a_test_case()
|
||||||
{
|
{
|
||||||
$finder = new Finder();
|
$finder = new Finder();
|
||||||
|
$moduleNameConverter = new ModuleNameConverter();
|
||||||
$testNameConverter = new TestNameConverter();
|
$testNameConverter = new TestNameConverter();
|
||||||
$command = new GenerateDrupal7Command($finder, $testNameConverter);
|
$command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter);
|
||||||
|
|
||||||
$commandTester = new CommandTester($command);
|
$commandTester = new CommandTester($command);
|
||||||
$commandTester->execute([
|
$commandTester->execute([
|
||||||
|
|
Loading…
Reference in a new issue