@@ -14,6 +14,7 @@ use Shudd3r\Skeletons\Application;
1414use Shudd3r \Skeletons \InputArgs ;
1515use Shudd3r \Skeletons \Environment \Files \Directory \LocalDirectory ;
1616use Shudd3r \Skeletons \Replacements \Replacement ;
17+ use Shudd3r \Skeletons \Replacements \Source ;
1718use Shudd3r \Skeletons \Templates \Contents ;
1819use Shudd3r \Skeletons \Templates \Template ;
1920
@@ -43,6 +44,18 @@ $app->replacement('package.name')->add(new Replacement\PackageName());
4344$ app ->replacement ('repository.name ' )->add (new Replacement \RepositoryName ('package.name ' ));
4445$ app ->replacement ('package.description ' )->add (new Replacement \PackageDescription ('package.name ' ));
4546$ app ->replacement ('namespace.src ' )->add (new Replacement \SrcNamespace ('package.name ' ));
47+ $ app ->replacement ('author.name ' )
48+ ->build (fn (Source $ source ) => $ source ->composer ()->value ('authors.0.name ' ) ?? 'Author Name ' )
49+ ->argumentName ('author ' )
50+ ->inputPrompt ('Author \'s name ' )
51+ ->description ('Name of package author [format: non-empty string] ' . PHP_EOL . 'Replaces {%s} placeholder ' )
52+ ->validate (fn (string $ value ) => !empty ($ value ));
53+ $ app ->replacement ('author.email ' )
54+ ->build (fn (Source $ source ) => $ source ->composer ()->value ('authors.0.email ' ) ?? 'default@example.com ' )
55+ ->argumentName ('email ' )
56+ ->inputPrompt ('Author \'s email address ' )
57+ ->description ('Email address of package author [format: <username>@<domain>] ' . PHP_EOL . 'Replaces {%s} placeholder ' )
58+ ->validate (fn (string $ value ) => $ value === filter_var ($ value , FILTER_VALIDATE_EMAIL ));
4659
4760$ isUpdate = $ args ->command () === 'update ' ;
4861$ app ->template ('composer.json ' )->createWith (function (Contents $ contents ) use ($ isUpdate ) {
0 commit comments